TextFile
7 отговора
207 прегледа
TextFile
Здравейте.
Опитвам се да прочета TextFile. Чета го с Readln, докато - not Eof(F) . Но възниква следният проблем:
Ако файлът е с голям размер (на пример>500к), процедурата прочита само първият ред от него и вече not Eof(F) е изпълнено. При по малки файлове всичко върви нормално.
Имате ли представа защо става така и можете ли да предложите алтернативи? Аз опитах с LoadFromFile в StringList - така става, но в моя случай е трудно за следваща обработка....
Благодаря ви.
Мишо.
Опитвам се да прочета TextFile. Чета го с Readln, докато - not Eof(F) . Но възниква следният проблем:
Ако файлът е с голям размер (на пример>500к), процедурата прочита само първият ред от него и вече not Eof(F) е изпълнено. При по малки файлове всичко върви нормално.
Имате ли представа защо става така и можете ли да предложите алтернативи? Аз опитах с LoadFromFile в StringList - така става, но в моя случай е трудно за следваща обработка....
Благодаря ви.
Мишо.
Re: TextFile
repeat
ReadLn(f, ...);
until eof(f);
Защо not eof(f) ?
Редактирано от mn_t на
Re: TextFile
Здравей.
При мен е:
while not Eof(F)
Begin
Readln(F,...);
....
end;
Но, не става въпрос за конкретното решение. И двата цикъла работят, но за файлове с по-малка големина. Проблемът възниква при по-големи от 500к.
При мен е:
while not Eof(F)
Begin
Readln(F,...);
....
end;
Но, не става въпрос за конкретното решение. И двата цикъла работят, но за файлове с по-малка големина. Проблемът възниква при по-големи от 500к.
Re: TextFile
Само предположения:
1. Не се прочита само първия ред, а целия файл - напр. поради UNIX-форматирани текстови файлове (само с $0D, без $0A или обратно).
2. Някъде в реда се среща контролен символ #26 = Ctrl-Z, който маркира край на текстовия файл.
1. Не се прочита само първия ред, а целия файл - напр. поради UNIX-форматирани текстови файлове (само с $0D, без $0A или обратно).
2. Някъде в реда се среща контролен символ #26 = Ctrl-Z, който маркира край на текстовия файл.
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!
------------------------------
I got a COMPILER, and I'm not afraid to use it!
Re: TextFile
Май и аз ще се откажа от ReadLn(). Въпреки, че е интересно да се знае защо става така...
Със StringList.LoadFromFile() се прочита коректно целия файл ред по ред. Няма проблеми.
Със StringList.LoadFromFile() се прочита коректно целия файл ред по ред. Няма проблеми.
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!
------------------------------
I got a COMPILER, and I'm not afraid to use it!
Re: TextFile
Защо не спретнеш едно архивче с примерна програма и проблемен текстов файл и не го сложиш някъде, откъдето може да се изтегли? Наистина ми е интересно - досега не съм се сблъсквал с такова нещо, а съм чел файлове с размер над 1 МБ.