Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Xor части файла [D3, XP]


Страницы:   1 2 3

KLAUS_ ©   (2007-08-05 20:15:00) 

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

fs := TFileStream.Create(path+srec.name,fmOpenReadWrite);
 fs.Seek($00000000,soFromBeginning);
 str:=inttostr(fs.Read(b,sizeof(b)));
  for i:=1 to length(str) do
   str[i]:=Chr(Ord(str[i]) xor 1);
       fs.Seek($000000000,soFromBeginning);
    fs.Write(str,sizeof(str));
    fs.Free;

Файл считывается и даже значения меняются но как-то криво, и обратно не возвращается, подскажите где ошибка???  
b:=byte;


{RASkov}   (2007-08-05 20:58:00) [41]

> [4] KLAUS_   (05.08.07 20:51)

Не заметил...[4].
Так тебе некие строки в файле нужно ксорить, но не весь файл..... или весь?


{RASkov}   (2007-08-05 20:56:00) [42]

В общем:
fs := TFileStream.Create(path+srec.name,fmOpenReadWrite);
fs.Seek($00000000,soFromBeginning); <- Зачем? Оно и так в начале...
str:=inttostr(fs.Read(b,sizeof(b))); <- Вообще не понятен смысл этого.... в Str в виде строки сколько было считано байтов ?
Потом все символы в строке str "кодируем"
 for i:=1 to length(str) do
  str[i]:=Chr(Ord(str[i]) xor 1);
и сместившись на начало файла
fs.Seek($000000000,soFromBeginning);
пытаемся затереть все, что было и
fs.Write(str,sizeof(str));
записать 4 байта непонятной инфы...
Правильно ли я понял ?


KLAUS_   (2007-08-05 20:51:00) [43]

Для начало, чтоб в файле изменились данные  при

str[i]:=Chr(Ord(str[i]) xor 1);

Чтоб "KLAUS" стал "JM@TR" , ну это на примере, а так,  беру чать кода по нужному адресу, ксору его, данные меняются, ксорю ещё раз данные возвращаются...
ЧТО НЕ ПРАВИЛЬНО ДЕЛАЮ!!


{RASkov}   (2007-08-05 20:45:00) [44]

> [2] KLAUS_   (05.08.07 20:37)
> Точно!!
> И??

Что должно в итоге получиться из [0] - я не понял...
Но вот так

> fs.Write(str,sizeof(str));

с учетом [1] - это ошибка.
Хотя у тебя длинна Str не будет больше 3, а SizeOf(String) = 4 то.....
В общем объясни, что в итоге хочешь?


KLAUS_   (2007-08-05 20:37:00) [45]

Точно!!
И??


Anatoly Podgoretsky   (2007-08-05 20:25:00) [46]

Наверно str типа string


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо