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

Вниз

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

 
Pasechnik   (2002-12-22 11:08) [0]

TFileStream показывает удивительно низкие результаты в скрости, требуется произвести xor для каждого байта файла, как сделать это быстрее?


 
Anatoly Podgoretsky ©   (2002-12-22 11:20) [1]

Что же ты такого сделал с TFileStream, что ты так на него обижен, дело конечно не в нем.
Код давай.


 
Pasechnik   (2002-12-22 12:29) [2]

Примерно так...



procedure TForm1.Button2Click(Sender: TObject);
var
st:integer;
begin
for st:=0 to fsize-1 do //fsize - размер файла
begin
f.Seek(st,sofrombeginning);
f.read(bt,1);
bt:=bt xor strtoint(edit1.text);
f.Seek(st,sofrombeginning);
f.Write(bt,1);
application.ProcessMessages;
progressbar1.Position:=st;

end;
f.free;
progressbar1.Position:=0;
end;


...тормоза жуткие


 
Rooman ©   (2002-12-22 12:38) [3]

либо читай в буфер (несколько сот байт), либо пользуй FileMapping


 
Rouse_ ©   (2002-12-22 12:56) [4]

в дополнение progressbar1.Position:=st; убрать, он сильно тормозит данный цикл

Желаю успехов


 
Anatoly Podgoretsky ©   (2002-12-22 13:07) [5]

Что же ты хочел при побайтовой работе, или обрабатывая весь файл целикоа или хотя бы поблочно, скажем за раз 64к


 
Fantasist ©   (2002-12-24 02:08) [6]

А еще, пожалуй, будет быстрее читать из одного файла, а писать в другой. Не поручусь, но думается так.


 
Юрий Зотов ©   (2002-12-24 06:13) [7]

Думаю, намного быстрее будет делать то же самое в TMemoryStream и обрабатывать по 4 байта, а не по одному. И не использовать seek/read с seek/write, а двигаться по памяти, используя Memory, указатель и его инкремент.

Учитывая, что у TMemoryStream него есть готовые LoadFromFile/SaveToFile, код практически не усложняется.



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
4-15374
Stel
2002-11-17 07:39
2003.01.06
IE.........?!


8-15170
step[B.M.]
2002-09-19 10:36
2003.01.06
КАК ДОБАВИТЬ В РЕСУРС MP3 И ПОТОМ ВОСПРОИЗВЕСТИ ЕГО ?


1-15130
Uran
2002-12-23 10:58
2003.01.06
ChekComboBox


8-15168
Dark Elf
2002-07-04 19:59
2003.01.06
Документация на GLScene


1-15127
Programist21
2002-12-22 13:30
2003.01.06
Текст или HTML-код из IE