![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сделать файл с самыми разными данными?
LordOfRock © (2006-02-11 01:53:00)Доброй ночи, мастера.
У меня вопрос к вам есть. Как в Delphi можно сделать файл с самыми разными данными, последовательно записанными. Пример:
[НАЧАЛО ФАЙЛА]
Integer-число. Пусть N
String1
String2
String3
...
StringN
Boolean
Integer
...
[Конец файла]
В untyped-файлах нужно размер секции указывать, а здесь размеры разные все. Даже у каждого String-элемента.
Можно-ли? Сдаётся, что нет.....
StriderMan (2006-02-11 21:11:00) [1]Для такой задачи INI хорошо подходит и TIniFile
или создать класс от TComponent со всеми этими данными в виде свойств в секции published и сохранять в поток! задачка на полстраницы кода
Anatoly Podgoretsky (2006-02-11 17:28:00) [2]Описаная структура очень напоминает текстовый файл.
Desdechado (2006-02-11 17:23:00) [3]файлы обычно имеют структуру, известную работающим с ними программам
а какой смысл в бесструктурном файле?
Германн (2006-02-11 03:18:00) [4]
> Благодарствую. А про запись длины строк - как говорится,
> "ясен пень, Тэрэнс" :)
А ты разве спрашивал "про запись длины строк"?
Можно записать любойфайл. Но стандартныхсредств для "правильного" чтения любогофайла в Дэлфи нет! Да и вообще нет нигде и никогда! Имхо.
LordOfRock (2006-02-11 02:10:00) [5]Гаврила © (11.02.06 2:07) [1]
Благодарствую. А про запись длины строк - как говорится, "ясен пень, Тэрэнс" :)
Гаврила (2006-02-11 02:07:00) [6]ну так и пиши, в TFileStream
var
Stream: TFileStream;
n, L: Integer;
S: string;
begin
Stream:=TFileStream.Create(<имя файла>, <флаги>)
try
N:=1;
Stream.WriteBuffer(N, SizeOf(N))
//Для записи строк целесообразно сначала писать длину, чтобы потом можно было считать
s:= 'блаблабла';
L:=Length(s);
Stream.WriteBuffer(L, SizeOf(L));
Stream.WriteBuffer(s[1], L);
и так далее
размер
finally
Stream.Free;
end;