Читать файл с конца (Delphi)
3551
10
Всем доброго времени суток.
Стоит задача, выбрать из большого текстового файла строки, как правило они находяться в конце, но выбирать с условием отбора подстроки.
Подскажите можно ли в делфях читать файл построчно не с первой к последней строке writeln - пока не конец файла, а наоборот?
Может какой-то счетчик завети по количеству строк, как тогда узнать количество строк в файле?
mages
Читать файл с конца, помоему такой возможности нет.

Проще на мой взгляд прочитать его весь в компонент имеющий в своей структуре Lines. Например Memo, RichEdit
и д.р.
Memo1.Lines.LoadFromFile(filename).
Lines имеет тип TString. и имеет такие свойства как count-количество. к строкам можно обращаться по индексу
Memo1.Lines.Strings[0]
.......
Memo1.Lines.Strings[count-1]
mages
with TStringList.Create do
begin
LoadFromFile(Filename);
for i:=Count-1 downto 0 do
begin
S:=Strings[i];
//и тут делаешь со стокой что хочешь
end;
Destroy;
end;
craxx
что по сути своей тоже самое.
Только никаких тяжеловесных Memo не надо :улыб:
craxx
Согласен.
У вас изящнее.
Я к сожалению самоучка. :хммм:
ТОлько забыл индекс поставить s:=strings[i]
Это не я индекс забыл поставить, это индекс
 [i] 
форум интерпретировал как выделение текста курсивом:улыб:
craxx
Ха, точно.
А если файл большой? Грузить его в память целиком будет накладно.
Есть универсальная методика - индексирование строк. Формируется еще индексный файл в котором пишется значение POS(F) начала строки.
Потом перемещаешься с использованием seek в нужное место и в любом порядке.
ЗЫ. одна из рядовых задач 1 курса программистских специальностей...
одна из рядовых задач 1 курса программистских специальностей...
Ну не знаю, не знаю. 3 семестра учился на АСУ(ФПМИ) потом на другом факультете. В мои годы с этим не сталкивался.
Да и работали мы на СМках ужасть был мама негорюй.
А про Delphi слыхать не слыхивали.
Потом перемещаешься с использованием seek в нужное место и в любом порядке.
А смысл сначала читать файл и строить индексы сначала, что бы потом читать его с конца?
Проще сразу найти строчки при первом проходе и мозги не размножать.

А вообще наверняка в дельфе есть способы позиционироваться в потоке, поэтому и файл с конца прочитать должно быть можно.
Не помню я дельфу уже, давно это было...