21.07.2011, 22:49
|
|
Always hardcore!
|
|
Регистрация: 04.03.2009
Адрес: СПб
Сообщения: 3,239
Версия Delphi: GCC/FPC/FASM
Репутация: 62149
|
|
Почти всё. Ну да ладно.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
stream: TFileStream;
text, buf: string;
pos1: int64;
begin
text := Edit1.Text;
stream := TFileStream.Create('C:/file.txt',fmOpenRead);
pos1 := -1;
stream.Seek(0, soFromBeginning);
SetLength(buf, Length(text));
while stream.Position < stream.Size do begin
stream.Read(buf[1], Length(text));
if pos(text, buf)>0 then begin
pos1 := stream.Position - Length(text);
break;
end;
stream.Seek(1 - Length(text), soFromCurrent);
end;
if pos1 > -1 then begin
SetLength(buf, stream.Size - pos1);
stream.Seek(pos1, soFromBeginning);
stream.Read(buf[1], stream.Size - pos1);
Memo1.Text := buf;
stream.Free;
end;
end;
Код выведет всё с первого вхождения строки в файле до конца файла. Если нужно меньше - думай, как обрезать. Направление я дал.
__________________
Оставайтесь хорошими людьми...
VK id2634397, ds [at] phoenix [dot] dj
|