![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
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