Страница 1 из 1
чтение из файла снизу вверх
Добавлено: 25 мар 2007, 12:12
itwork
ВОт этот отрывок кода - чтение файла с верху вниз:
Код: Выделить всё
assign(f,'a.txt');
reset(f);
while not eof(f) do
begin
readln(f,tmp);
writeln(tmp);
end;
close(f);
Люди а как написать код, чтоб наоборот происходило чтение файла снизу вверх???
Re: чтение из файла снизу вверх
Добавлено: 26 мар 2007, 08:38
LAngel
построчно или посимвольно?
Re: чтение из файла снизу вверх
Добавлено: 26 мар 2007, 10:37
Хыиуду
Из типизированного файла можно с помощью функции seek. Из текстового файла - имхо, только если считать все строки в массив и его задом наперед просматривать.
Re: чтение из файла снизу вверх
Добавлено: 26 мар 2007, 15:10
Колядин Максим
Вот код, который показывает считанные из файла строки задом на перед, то есть, корректно отображать содержимое файла сверху вниз будет только если символов в файле не более 256. Если символов в текстовом документе больше, тогда программа будет отображать по порядку по 256 символов наоборот.
Код: Выделить всё
uses crt;
var i: integer;
s: string;
f: text;
begin
clrscr;
assign(f, 'a.txt'); reset(f);
while not eof(f) do begin
while not eoln(f) do begin
read(f,s);
for i:= length(s) downto 1 do write(s[i]);
end;
readln(f);
end;
readkey;
end.
Re: чтение из файла снизу вверх
Добавлено: 27 мар 2007, 06:46
SergeyS
" писал(а):Люди а как написать код, чтоб наоборот происходило чтение файла снизу вверх???
Это чисто академический вопрос или требуется сделать что-то полезное? Если файл не очень большой, то проще прочитать его целиком, а потом обрабатывать задом наперёд. Если это очень большой файл (например лог файл на несколько мегабайт), то открываешь файл, seek'ом (как и писал
Хыиуду) переходишь в конец файла - 1024 байта (или нужный тебе размер блока) и читаешь данные, дальше работаешь уже только с прочитанным блоком. Писать готовый код лениво.