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

Сейчас читают
            
            Ситуация в  России. (часть 17)
            266682
                1000
                Коттеджный поселок "Университетский"/СНТ "Ключи-4 Восточные"
            32390
                71
                Короновирус является биологическим оружием против Китая?
            197921
                578
                А если файл большой? Грузить его в память целиком будет накладно.
Есть универсальная методика - индексирование строк. Формируется еще индексный файл в котором пишется значение POS(F) начала строки.
Потом перемещаешься с использованием seek в нужное место и в любом порядке.
ЗЫ. одна из рядовых задач 1 курса программистских специальностей...
    Есть универсальная методика - индексирование строк. Формируется еще индексный файл в котором пишется значение POS(F) начала строки.
Потом перемещаешься с использованием seek в нужное место и в любом порядке.
ЗЫ. одна из рядовых задач 1 курса программистских специальностей...
одна из рядовых задач 1 курса программистских специальностей...Ну не знаю, не знаю. 3 семестра учился на АСУ(ФПМИ) потом на другом факультете. В мои годы с этим не сталкивался.
Да и работали мы на СМках ужасть был мама негорюй.
А про Delphi слыхать не слыхивали.
                
                    Egor_M
                
                
        
        
    experienced
            Потом перемещаешься с использованием seek в нужное место и в любом порядке.А смысл сначала читать файл и строить индексы сначала, что бы потом читать его с конца?
Проще сразу найти строчки при первом проходе и мозги не размножать.
А вообще наверняка в дельфе есть способы позиционироваться в потоке, поэтому и файл с конца прочитать должно быть можно.
Не помню я дельфу уже, давно это было...
ТОП 5
            2
                        
                    4