Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.03.03;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.006 c
8-6157
Ivolg
2003-11-02 09:12
2004.03.03
Прокрутка


3-5971
ivs13
2004-02-05 14:09
2004.03.03
Бесплатная лицензия на Yaffil


1-6110
DelphiN!
2004-02-20 18:54
2004.03.03
Автозагрузка в WinXP


14-6246
fag2000
2004-02-10 14:03
2004.03.03
Тысячи по английскому.


1-6028
Сережа
2004-02-18 19:32
2004.03.03
Panel перекрывает Image





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский