TextFile

7 отговора 207 прегледа
#1

TextFile

Здравейте.

Опитвам се да прочета TextFile. Чета го с Readln, докато - not Eof(F) . Но възниква следният проблем:
Ако файлът е с голям размер (на пример>500к), процедурата прочита само първият ред от него и вече not Eof(F) е изпълнено. При по малки файлове всичко върви нормално.
Имате ли представа защо става така и можете ли да предложите алтернативи? Аз опитах с LoadFromFile в StringList - така става, но в моя случай е трудно за следваща обработка....

Благодаря ви.

Мишо.

Отговор
в отговор на Misho #2

Re: TextFile


repeat
ReadLn(f, ...);
until eof(f);


Защо not eof(f) ?

Редактирано от mn_t на

Отговор
в отговор на mn_t #3

Re: TextFile

Здравей.
При мен е:

while not Eof(F)
Begin
Readln(F,...);
....
end;

Но, не става въпрос за конкретното решение. И двата цикъла работят, но за файлове с по-малка големина. Проблемът възниква при по-големи от 500к.

Отговор
в отговор на Misho #4

Re: TextFile

Само предположения:
1. Не се прочита само първия ред, а целия файл - напр. поради UNIX-форматирани текстови файлове (само с $0D, без $0A или обратно).
2. Някъде в реда се среща контролен символ #26 = Ctrl-Z, който маркира край на текстовия файл.

Отговор
в отговор на Mandor #5

Re: TextFile

Towa sam go zabelqzal i az ama za dosta po-golemi fajlowe i to w binary mode prosto reshenie e da se polzwa WinAPI - az pone taka si teshih problema ama za text mode neznam - tam e malko po-slojno - sha trqbwa da prash nqkwo elementarno readahead ...

------------------------------
I got a COMPILER, and I'm not afraid to use it!
Отговор
в отговор на SDR #6

Re: TextFile

Май и аз ще се откажа от ReadLn(). Въпреки, че е интересно да се знае защо става така...
Със StringList.LoadFromFile() се прочита коректно целия файл ред по ред. Няма проблеми.

Отговор
в отговор на Misho #7

Re: TextFile

Predpolagam e nqkaf bag w razmera na promenliwata(word s integer) s koqto srawnqwat razmera na fajla i tekushtat poziciq w nego ...

------------------------------
I got a COMPILER, and I'm not afraid to use it!
Отговор
в отговор на Misho #8

Re: TextFile

Защо не спретнеш едно архивче с примерна програма и проблемен текстов файл и не го сложиш някъде, откъдето може да се изтегли? Наистина ми е интересно - досега не съм се сблъсквал с такова нещо, а съм чел файлове с размер над 1 МБ.

Отговор