Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];

Вниз

Помогите с шифратором(запись и чтение из файла)   Найти похожие ветки 

 
Monty   (2007-01-31 22:32) [0]

Вообщем есть некий файл(variables.txt к примеру), и в нем зашифрованные значения переменных(как зашифровать тоже скажите). Вот например в файле такая строка: 10 15 Weapon BLa Bla Bla.
Как ее зашифровать и эти значения прочитать в делфи? Подскажите плз! Если что непонятно - объясните что и я напишу.


 
Johnmen ©   (2007-01-31 23:13) [1]

А что ты уже знаешь по данному вопросу? Ну, кроме, как играть в эту игрушку, естественно.


 
Monty   (2007-01-31 23:18) [2]

практически ничего, даже незнаю как из одной строчки из файла прочитать строковую переменную, если незнаешь ее точной длины :(


 
Beeper   (2007-01-31 23:20) [3]

Monty   (31.01.07 23:18) [2]

Как думаешь, Лев Толстой "Войну и Мир" написал до того, как писать научился, или уже после?


 
Monty   (2007-01-31 23:23) [4]

Ну вот все испробовал :)


 
bagos   (2007-01-31 23:24) [5]

Monty,ну если ты хочешь просто зашифровать и расшифровать,то вот тебе самый приметив:
var
 s : string;
 e : string;
 j,i : Integer;
begin
 s := memo1.Lines.Text;
 SetLength(e, length(s));
 for i := 1 to length(s) do begin
   e[i] := chr(ord(s[i])+500); //тут можешь поставить любое число
 end;
memo2.Lines.Text:=e;

чтобы расшифровать просто вычитаешь то же число


 
Monty   (2007-01-31 23:25) [6]

не, похоже вы не поняли суть.


 
Beeper   (2007-01-31 23:26) [7]

//тут можешь поставить любое число

Наивысшая степень шифрования - 256.


 
Beeper   (2007-01-31 23:28) [8]

не, похоже вы не поняли суть.

Не, это ты не назвал сумму.


 
Monty   (2007-01-31 23:30) [9]

вощем, типа есть файл(лубой, главное чтоб в нем значения переменных хранились), но он зашифрованный(т.е. все значения в нем зашифрованы). так вот как в делфи прочитать эти значения?


 
Monty   (2007-01-31 23:30) [10]

вощем, типа есть файл(лубой, главное чтоб в нем значения переменных хранились), но он зашифрованный(т.е. все значения в нем зашифрованы). так вот как в делфи прочитать эти значения?


 
bagos   (2007-01-31 23:31) [11]

хм...даже не знаю можно ли тебе помочь;)


 
Beeper   (2007-01-31 23:32) [12]

так вот как в делфи прочитать эти значения?

Так же как и незашифрованные.


 
Monty   (2007-01-31 23:37) [13]

лана, рас вы не можете мне помочь с этим, тады хотябы подскажите
> как из одной строчки из файла прочитать строковую переменную,
>  если незнаешь ее точной длины


 
Monty   (2007-01-31 23:40) [14]

как я уже сказал дана строка в файле:
1 2 3 54 bla blab blav
как прочитать их в дельфи в 7 переменных(т.е a:=1, b:=2, c:=3, d:=54, e:=bla, f:=blab, g:=blav)?


 
Beeper   (2007-01-31 23:42) [15]

рас вы не можете мне помочь с этим

Это ты не можешь сказать, что тебе надо.

Что значит "строчка файла"?
Файл - текстовый?
Если да, то, для тебя проще всего будет:

var
 SL: TStringList;
begin
 SL := TStringList.Create;
 try
   SL.LoadFromFile("c:\file.txt");
   // Теперь в SL загружены все строки
   // SL[0] - первая строка
   // SL[1] - вторая строка и т. д.
 finally
   SL.Free;
 end;
end;


 
Beeper   (2007-01-31 23:42) [16]

e:=bla, f:=blab, g:=blav

Шикарно...


 
Monty   (2007-01-31 23:45) [17]


> Шикарно...

фантазия =))))


 
Beeper   (2007-01-31 23:46) [18]

var
 SL: TStringList;
 VL: TStringList;
begin
 SL := TStringList.Create;
 try
   SL.LoadFromFile("c:\file.txt");
   // Теперь в SL загружены все строки
   // SL[0] - первая строка
   // SL[1] - вторая строка и т. д.
   if (SL.Count > 0) then
   begin
     VL := TStringList.Create;
     try
       VL.DelimitedText := SL[0]; // первая строка из файла
       // Теперь VL[0]  - первая подстрока ("1")
       // Теперь VL[1]  - первая подстрока ("2")
       // Теперь VL[2]  - первая подстрока ("3")
       // Теперь VL[3]  - первая подстрока ("54")
       // Теперь VL[4]  - первая подстрока ("bla")
       // и т. д.
     finally
       VL.Free;
     end;
   end;
 finally
   SL.Free;
 end;
end;


 
Beeper   (2007-01-31 23:47) [19]

      // Теперь VL[0]  - первая подстрока ("1")
      // Теперь VL[1]  - первая подстрока ("2")
      // Теперь VL[2]  - первая подстрока ("3")
      // Теперь VL[3]  - первая подстрока ("54")
      // Теперь VL[4]  - первая подстрока ("bla")


Correction:

      // Теперь VL[0]  - первая подстрока ("1")
      // Теперь VL[1]  - вторая подстрока ("2")
      // Теперь VL[2]  - третья подстрока ("3")
      // Теперь VL[3]  - четвертая подстрока ("54")
      // Теперь VL[4]  - пятая подстрока ("bla")


 
Monty   (2007-01-31 23:49) [20]

Да, наверно это я недообьясняю. Вот дан файл(а какая разница какой?) в нем строчки(именно строчки)
1 2 3 54 bla blab blav
2 5 7 35 fff aaaa dfff


> // Теперь в SL загружены все строки    // SL[0] - первая
> строка    // SL[1] - вторая строка и т. д.

и как мне теперь вытащить оттуда значения
> a:=1, b:=2, c:=3, d:=54, e:=bla, f:=blab, g:=blav
?


 
Beeper   (2007-01-31 23:57) [21]

Вот дан файл(а какая разница какой?) в нем строчки(именно строчки)

А теперь объясни, что ты называешь  "именно строчки" в "какая разница каком" файле?


 
Monty   (2007-02-01 00:04) [22]

СТРОКИ!!! у меня эти переменные не в столбик записаны а в одной строке. а какая разница - типа можно любое ведь разширение сделать?


 
Beeper   (2007-02-01 00:07) [23]

Это тебе для тренировок:

Кинь на пустую форму Button и ListBox.

procedure TForm1.Button1Click(Sender: TButton);
var
 SL: TStringList;
 VL: TStringList;
 i: integer;
begin
 SL := TStringList.Create;
 try
   SL.LoadFromFile("c:\file.txt");
   if (SL.Count > 0) then
   begin
     ListBox1.Items.Clear;
     VL := TStringList.Create;
     try
       VL.DelimitedText := SL[0];
       for i := 0 to VL.Count - 1 do
         ListBox1.Items.Add(VL[i]);
    finally
       VL.Free;
     end;
   end
   else
   begin
     ListBox1.Items.Add("No lines in the file");
   end;
 finally
   SL.Free;
 end;
end;


 
Monty   (2007-02-01 00:10) [24]

привожу пример использования этого метода:
1) когда сохраняешь игру(пример), игра сохраняется в файл(все переменные), но когда пытаешся его открыть блокнотом то видим чушь, эта чушь и называется шифрование.
2) в некоторых играх(warcraft, oblivion) есть файлы, в которых описаны все элементы игры(типа, к примеру, мечи(параметры), луки(параметры) и тд и тп)
и при их открытии в блокноте видим ту же самую картину, что и с сохранениями.

Не подумайте, что я хочу создать что то типа Warcraft"a(вообще ниче не создаю), просто мне надо реализовать этот метод.


 
Beeper   (2007-02-01 00:11) [25]

СТРОКИ!!! у меня эти переменные не в столбик записаны а в одной строке.

Ты чего это кричишь? Держи свои эмоции при себе!
Открой файл MS Word в блокноте и найди там строки.
Если, типа, найдешь (хм...) - сохрани файл из блокнота (с расширением .doc), и попробуй теперь его открыть при помощи MS Word.

Сделай выводы.

а какая разница - типа можно любое ведь разширение сделать?

Мне устраивать тебе ликбез по текстовым и бинарным файлам?


 
Beeper   (2007-02-01 00:14) [26]

но когда пытаешся его открыть блокнотом то видим чушь, эта чушь и называется шифрование.

Сам терминологию придумал? Или кто подсказал?
Купи книгу по Pascal - и читай. В частности, про типизированные файлы. Вдумчиво читай. Будут вопросы - спрашивай.

P.S. Я тебе, вообще то, дал рабочий пример. Или ты только кричать горазд?


 
Beeper   (2007-02-01 00:15) [27]

но когда пытаешся его открыть блокнотом то видим чушь, эта чушь и называется шифрование.

Я тут про орешник вспомнил...


 
Monty   (2007-02-01 00:19) [28]

ну вообще спасибо за код - получилось, но одна маленькая деталь. вот у тебя они все в лист бох записываются а как сделать чтобы каждая в свою переменную?


 
Monty   (2007-02-01 00:21) [29]

У меня этих книг полно! Сижу изучаю, но вот никак не могу эту "фихню" сделать вот и обратился


 
Beeper   (2007-02-01 00:22) [30]

вот у тебя они все в лист бох записываются а как сделать чтобы каждая в свою переменную?

Я тебе уже писал:

     // Теперь VL[0]  - первая подстрока ("1")
     // Теперь VL[1]  - вторая подстрока ("2")
     // Теперь VL[2]  - третья подстрока ("3")
     // Теперь VL[3]  - четвертая подстрока ("54")
     // Теперь VL[4]  - пятая подстрока ("bla")


Я не знаю, что за чудо-игру ты там лабаешь, но, если ты не знаком с алгоритмизацией, программированием и языком программирования, на котором пытаешься лабать - то, говорю сразу - у тебя ничего не получится.

var
 V1: string;
...
 if (VL.Count > 0) then
   V1 := VL[0]
 else
   V1 := "";


 
Monty   (2007-02-01 00:24) [31]


> что за чудо-игру ты там лабаешь


>  у тебя ничего не получится


как я уже сказал мне нужен тока этот метод


 
Monty   (2007-02-01 00:26) [32]

чесно говоря ниче не понял, но все равно спасибо!


 
Beeper   (2007-02-01 00:41) [33]

чесно говоря ниче не понял, но все равно спасибо!

procedure TForm1.Button1Click(Sender: TButton);
var
 SL: TStringList;
 VL: TStringList;
 a: string;
 b: string;
 c: string;
 d: string;
 e: string;
 f: string;
 g: string;
begin
 SL := TStringList.Create;
 try
   SL.LoadFromFile("c:\file.txt");
   if (SL.Count > 0) then
   begin
     VL := TStringList.Create;
     try
       VL.DelimitedText := SL[0];
       if (VL.Count > 5) then
       begin
         a := VL[0];
         b := VL[1];
         c := VL[2];
         d := VL[3];
         e := VL[4];
         f := VL[5];
         g := VL[6];

       end;
     finally
       VL.Free;
     end;
   end;
 finally
   SL.Free;
 end;
end;


 
Beeper   (2007-02-01 00:42) [34]

(VL.Count > 5)

Correction:

(VL.Count > 6)


 
Перцец   (2007-02-01 02:39) [35]

Поверь, настоящие перцы юзают типиризованные файлы.
Вот на память(нет делфи проверить)

Приюсаси и используй процедуру LoadObj;

unit MyGameObj;

interface

type
 TGameObj=packed record
   a, b, c, d: integer;
   e, f, g: string[100];
 end;

const
 MaxObj=65000;
 CurrentObj:integer;
var
 k: array of [1..MaxObj] of TGameObj;
 f: file of TGameObj;

procedure LoadObj;

implementation

procedure LoadObj;
begin
 CurrentObj:=0;
 
 AssignFile(f,"MyObj.obj")
 Reset(f);
 Seek(f,CurrentObj);
 while not eof(f) do
 begin
   CurrentObj:=CurrentObj+1;
   Read(f,k[CurrentObj]);
 end;
 CloseFile(f);
end;

end.


 
Перцец   (2007-02-01 02:45) [36]

Удалено модератором
Примечание: Оффтопик


 
Джо ©   (2007-02-01 03:34) [37]

Ребята, заканчивайте, пожалуйста, с жаргоном и оффтопиком. И глушите эмоции.


 
brother ©   (2007-02-01 11:42) [38]

я извиниясь... но как я понял...
1. чел вообще в программировании 0..1)
2. хочет сделать прогу которая редактирует значения савок игры...
3. не знает элементарных вещей...
4. орешник чистой воды...


 
Плохиш ©   (2007-02-01 12:10) [39]


> brother ©   (01.02.07 11:42) [38]
> я извиниясь... но как я понял...
> 1. чел вообще в программировании 0..1)

Многоточие надо с другой стороны нуля поставить.

> 4. орешник чистой воды...

Не, не орешник, а ещё одна кухарка.


 
Monty   (2007-02-01 16:13) [40]

Удалено модератором



Страницы: 1 2 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.02.18;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.047 c
2-1170002397
Legolas
2007-01-28 19:39
2007.02.18
работа с несколькими объектами


2-1170252333
DelphiLexx
2007-01-31 17:05
2007.02.18
Узнать количество элементов


15-1169431613
SerJaNT
2007-01-22 05:06
2007.02.18
Вопросы по Wi-Fi


2-1170149118
myaucher
2007-01-30 12:25
2007.02.18
Использование Data Module


15-1169883327
Piroxyline
2007-01-27 10:35
2007.02.18
На каком языке?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский