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

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

File of... [D7, XP]


Влад ©   (2007-01-05 20:54:00) 

Столкнулся с такой проблемой. При размере файла, кратном 8 (2 longword'a) нижеследующий код работает прекрасно. Однако если размер не кратен 8, то конец файла "обрезается". Конечно, можно читать файл побайтно, но тогда проигрываешь в оптимизации. Подскажите пожалуйста решение этой проблемы.

var fi,fo:file of longword;
L,R:longword;
begin
assignfile(fi,f_in);
reset(fi);
assignfile(fo,f_out);
rewrite(fo);
while not eof(fi) do begin
read(fi,L,R);
....//преобразования
write(fo,L,R);
end;
closefile(fi);
closefile(fo);
end;


Palladin   (2007-01-05 21:09:00) [1]

для особо одаренных

var
buf:array [1..32768] of byte;
f:file;
i,n:integer;

assignfile(f,...); reset(f,1);
repeat
blockread(f,buf,sizeof(buf),n);
for i:=1 to n do четоделаемсбайтом(buf[i]);
until n=0;
closefile(f);


Влад   (2007-01-05 21:03:00) [2]

Blockread - то же самое, дальше Count*RecSize не читает.


Влад   (2007-01-05 20:58:00) [3]

А поподробнее?


Palladin   (2007-01-05 20:55:00) [4]

blockread + F1
TFileStream + F1


Наверх

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