Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.03;
Скачать: CL | DM;

Вниз

Читать текстовый файл построчно   Найти похожие ветки 

 
Dimich1978 ©   (2004-02-19 09:29) [0]

Вопрос вот в чем читаю я к примеру так:
...
var
S: string;
i: integer;
begin
List.BeginUpdate;
try
List.LoadFromFile(FileName);
for i:=0 to List.Count - 1 do begin
S:=List[i];
OemToChar(PChar(S), PChar(S));
List[i]:=S;
end;
finally
List.EndUpdate;
end;
Но возникает вопрос такого характера, у меян этот текстовый файл(лог) очень большой, справится ли(хватит ли места) у StringList или Strings чтобы загрузить его. Не могу найти какое ограничение у них.
Если для больших файлов(измеряется 10МБ) не подойдет, то как можно тогда читать данный файл, только красиво(не через assign,read)
Спасибо всем заранее.


 
TUser ©   (2004-02-19 09:35) [1]

var f:textfile; s:struing;
begin
assignfile(ююю)
reset(f);
try
while not eof(f) do begin
readln(f,s)
...
end;
finally
closefile(f);
end;

+ статьи А.Подгорецкого на Королевстве делфи (надо бы их почаще рекламировать, а то не все их читаю, почему-то).


 
Dimich1978 ©   (2004-02-19 09:43) [2]

>>TUser
>>Dimich1978 красиво(не через assign,read) ;-)


 
Defunct ©   (2004-02-19 09:52) [3]

А чем через Assign не красиво? Религия запрещает7


 
ЮЮ ©   (2004-02-19 09:56) [4]

TFileStream, правда лазить по нему надо будет как по бинарному


 
TUser ©   (2004-02-19 09:57) [5]

А "не". Тогда, наверное,
var s:TStringList;
begin
...
s.LoadFromFile(...);
...
end;
Но если файл действительно большой, то будет тормозить и есть много памяти. Конкретно, что касается лога, то хочется знать в чем собственно состоит задача. Если найти, скажем, записи за определенный день, то тогда лучше сделать файл типа file of rec. И там уже читать запись с нужным номером. А если найти все записи, где что-то происходило, тогда нужен хеш.


 
Anatoly Podgoretsky ©   (2004-02-19 10:01) [6]

Что такое List? Но естественно хватит, хоть построчно, хоть разом, или не хватит - метод тут роли не играет.


 
Dimich1978 ©   (2004-02-19 10:09) [7]

Может изврат, но буду пихать все в БД и там уже работать с данными(более гибкие отчеты можно сформировать) да и работать приятнее нежели с текстовым файлом, а размеры могут быть и по 10 и по 100 и по 150 МБ. Хотя в среднем МБ 50-70.


 
Dimich1978 ©   (2004-02-19 10:23) [8]

LIst у меня TStringLIst


 
Verg ©   (2004-02-19 10:28) [9]


> Dimich1978 © (19.02.04 10:23)


Странноватые у вас понятия о красоте.
А вкачивать в память по 150 Мгб файлы - это красиво?


 
Dimich1978 ©   (2004-02-19 10:33) [10]

Чувствую что без assign не прокатит. Ладно буду через них делать. Всем спасибо. И еще раз спасибо, 150 в память это я бы назвал извр...ие вот и спрашивал можнт АПИШНЫМИ функциями как можно было. FILEOPEN и тому подобное, почему спрашиваю у меня Хелп в 6 весиии не пашет.


 
Verg ©   (2004-02-19 10:45) [11]


> Dimich1978 © (19.02.04 10:33)


Вы видели КАК реализован LoadFromFile?
Вы знаете что, для закачки этим методом в какой-то момент времени понадобится 2*V памяти (V- объем файла)...


 
Плохиш   (2004-02-19 10:46) [12]

>Dimich1978 © (19.02.04 10:33) [10]
> вот и спрашивал можнт АПИШНЫМИ функциями как можно было.
> FILEOPEN и тому подобное

Ты думаешь для assignfile, reset борланд что-то своё некрасивое придумывал?


 
Serginio666   (2004-02-19 14:22) [13]

http://www.1c.hippo.ru/cgi-bin/predownl.cgi?id=2019
Там есть
Тест на чтения текстовых файлов различными способами. Также исходники объектов для последовательного чтения текстовых файлов
как в прямом так и в обратном направлении TTextReader и TTextBackReader использующие кольцевой буффер размером 64 кб с ограничением на длину строки 64 кб - 3 байта.
Сразу предупреждаю, что не протестированы на все



Страницы: 1 вся ветка

Текущий архив: 2004.03.03;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.017 c
6-6176
Checist [root]
2003-12-27 03:04
2004.03.03
Проверка полной загрузки


1-6016
Tommy
2004-02-19 10:51
2004.03.03
Имеется поток,в нем инициализирую и запускаю еше один ...


1-6106
Ал
2004-01-23 13:38
2004.03.03
Функция в Делфи


14-6199
марсианин
2004-02-11 16:47
2004.03.03
Имена каталогов после восстановления


14-6213
syte_ser78
2004-02-11 12:09
2004.03.03
разбивка имени компонента