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

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

Как сделать файл с самыми разными данными?


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;


Наверх

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