- Код: Выделить всё
assign(f,'a.txt');
reset(f);
while not eof(f) do
begin
readln(f,tmp);
writeln(tmp);
end;
close(f);
Люди а как написать код, чтоб наоборот происходило чтение файла снизу вверх???
Модератор: Модераторы
assign(f,'a.txt');
reset(f);
while not eof(f) do
begin
readln(f,tmp);
writeln(tmp);
end;
close(f);
var FileStream : TFileStream;
Buffer: PChar;
Size,vNum: integer;
begin
FileStream := TFileStream.Create('c:\test.txt',fmOpenRead);
Size:=10; // должен быть равен строке, незабываем про #13#10
GetMem(Buffer, Size);
for vNum := (FileStream.Size div Size)-1 downto 0 do // возможно нужно не div а округление до большего
begin
FileStream.Seek(vNum*Size,soFromBeginning);
FileStream.Read(Buffer[0], Size);
ShowMessage(Buffer);
end;
FreeMem(Buffer);
FileStream.Free;
end;
itwork писал(а):ВОт этот отрывок кода - чтение файла с верху вниз:
- Код: Выделить всё
assign(f,'a.txt');
reset(f);
while not eof(f) do
begin
readln(f,tmp);
writeln(tmp);
end;
close(f);
Люди а как написать код, чтоб наоборот происходило чтение файла снизу вверх???
GrayEddy писал(а):Как вариант, работа с TStringList.
var
T: TStringList;
I: Integer;
...
T := TStringList.Create;
T.LoadFromFile('d:\demo.txt');
for I := T.Count - 1 downto 0 do
Writeln(T.Strings[I]);
T.Free;
function fu( var f: text );
var s: string;
begin
if not eof(f) then
begin
readln( f, s);
fu( f );
writeln( s);
end;
end;
i:=0;
k:=0;
assign(f,'a.txt');
reset(f);
while not eof(f) do
begin
readln;
i:=i+1; {считаем строки}
end;
while i > 0 do
begin
repeat
begin
readln(a[i]); {пишем данные в массив}
{то бишь пишем и пишем и пишем пока не дойдем до нужной строки}
k:=k+1;
end;
until k=i;
i:=i-1;
k:=0;
end;
close(f);
Вернуться в Free Pascal Compiler
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4