Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Чтение файла. [D5, NT4]


DAV ©   (2003-01-24 18:53:00) 

Как прочитать файл по 1 символу перебором? Не могу найти. ;-(


gsu   (2003-01-27 19:13:00) [1]

а File еще круче (-:|~


Victor_Cr   (2003-01-27 19:10:00) [2]

TextFile и File of Char синонимы одного и того же типа
А вот File of Byte круче...


MegaVolt   (2003-01-27 10:26:00) [3]

Кстати Memo может обрубать из-за превывшения максимального размера текста :( Пользую RichEdit там ограничения побольше.


Anatoly Podgoretsky   (2003-01-27 10:16:00) [4]

DAV © (25.01.03 08:41)
У тебя не текстовый файл поэтому и обрывает.


stranger71   (2003-01-27 10:02:00) [5]

Дело в том, что файл типа Text может содержать только алфавитно-цифровые и некоторые управляющие (перевод строки, прогон листа) символы. Если же это бинарник, то вполне может встретиться и символ конца файла (для текстовых есть и такой). И тогда конструкция While not eof do ...завершится на первом таком символе, хотя файл не закончился. Вычитывать такие файлы нужно обычными файлами - либо так, как показал Cyborg, либо используя файл с указанным типом данных ( File of charнапример). Для Memo - та же петрушка, там можно использовать алфавитно-цифровые символы и символы #10#13 - остальное Мемо откажется выводить


Моисей   (2003-01-26 11:06:00) [6]

у тебя там наверное бинарная гадость какая-нибудь попадается,
вот StringList и путается


DAV   (2003-01-26 09:53:00) [7]

Спасибо. Работает. Тока почему то Memo половину записей обрубает.


cyborg   (2003-01-25 10:50:00) [8]

Var
F : File;
Ch : Char;
begin
AssignFile(F,"msg.dat");
Reset(f,1);
While not eof(f)
begin
Blockread(f,Ch,1);
//c Ch чего нибудь делаешь
end;
closefile(f);
end;

Только посимвольно будет очень медленно, читай сразу блоками например по 4 кб. в массив, а затем уже смотри массив посимвольно.


DAV   (2003-01-25 08:41:00) [9]

Это понятно на обычных txt-ках, но у меня лог файл, и по Read(f,c) читает несколько строк и всё. Хотя файл здоровый.
Делаю допустим Memo1.Lines.LoadFromFile("msg.dat"), загружает только первую букву и всё.
Может кто поможет?


atmospheric   (2003-01-24 23:10:00) [10]

хм, а так что не пойдет -
var
c: char;
f: textfile;
begin
...
while not eof(f)
Read(f,c);

end;


Александр Спелицин   (2003-01-24 21:26:00) [11]

См. ReadFile (MSDN).


Наверх

Титульная страница Поиск, карта сайта Написать письмо