![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение файла [D7, XP]
allucard © (2007-04-17 11:50:00)Доброго дня.
Есть файл - одна строка текста(слов, отделённых пробелами), длинной в 12000 симв.
Как проще эту строку преобразовать в массив слов?
Или другими словами: в какой тип лучше сначала записать эту строку и есть ли спец. функции преобразования?
Делаю пока так:
FileStream:= TFileStream.Create('C:\123.txt', fmOpenRead);
FileStream.ReadBuffer(Buffer, 65535);
FileStream.Free;
Спасибо.
allucard (2007-04-17 13:06:00) [21]Я так понял тут StringList не поможет?
Тогда что?
Плохиш (2007-04-17 13:05:00) [22]
> Вообще я уже сталкивался с этим раньше.
> То, что блокнот открывает, Delphi компонентами своими не
> видит.
Опять картинки в блокноте обрабатывают. Всё делфи видит, это ты не видишь...
Сергей М. (2007-04-17 13:05:00) [23]
> allucard (17.04.07 13:03) [5]
> Ну не совсем он текстовый
Ну да, разумеется)
"Не совсем беременная" следует рассматривать как "не беременная")
Reindeer Moss Eater (2007-04-17 13:04:00) [24]Что как правильно?
Данные считаны все и правильно.
Дальше надо вспомнить что это за данные и как с ними можно обращаться и можно ли с ними обращаться как со строками.
allucard (2007-04-17 13:03:00) [25]
> Сергей М. © (17.04.07 12:59) [4]
>
> Это что, дамп оригинального файла ?
Да.
Ну не совсем он текстовый, дальше там текстовая информация.
Вообще я уже сталкивался с этим раньше.
То, что блокнот открывает, Delphi компонентами своими не видит.
Что делать?
> Reindeer Moss Eater © (17.04.07 12:58) [3]
Посоветуй, как правильно.
Сергей М. (2007-04-17 12:59:00) [26]
> Вот коды символов
Это что, дамп оригинального файла ?
Если так, то этот файл отнюдь не текстовый.
Reindeer Moss Eater (2007-04-17 12:58:00) [27]Выводит только первые пять символов, и всё.
Это ты неправильно выводишь.
allucard (2007-04-17 12:53:00) [28]Выводит только первые пять символов, и всё.
Хотя файлы с обычным текстом нормально.
Вот коды символов:
30 33 50 9D 07 00 14 00 08 00 64 9D 07 00 14 00
Т.е 00 уже не читает а переводит строку и всё.
Вот код:
StringList:= TStringList.Create;
StringList.Delimiter:=' ';
StringList.DelimitedText :='';
if (FileExists(OpenDialog1.FileName)) then
begin
FileStream:= TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
StringList.LoadFromStream(FileStream);
FileStream.Free;
end;
Memo1.Lines.AddStrings(StringList);
StringList.Free;
и delimiter и delimitedtext опускал добавлял - не помогала.
Правильный Вася (2007-04-17 11:54:00) [29]TStringList
.Delimiter
.DelimitedText
.LoadFromFile