![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение файла. [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).