Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.02.18;
Скачать: CL | DM;

Вниз

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

 
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]

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


 
Monty   (2007-02-01 16:16) [41]

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


 
Игорь Шевченко ©   (2007-02-01 16:17) [42]

Monty   (01.02.07 16:16) [41]

Таким не помогают



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

Текущий архив: 2007.02.18;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.05 c
6-1158054628
DelphiN!
2006-09-12 13:50
2007.02.18
Не проходит POST запрос


2-1169891947
Muchacho123
2007-01-27 12:59
2007.02.18
MultiSelect в OpenDialog


2-1170250227
XTD
2007-01-31 16:30
2007.02.18
Куда загрузить список Имя,Изображение?


2-1170250110
port
2007-01-31 16:28
2007.02.18
Тригер MSSQL2000


1-1166779471
Stanislav
2006-12-22 12:24
2007.02.18
Служба и Com порт