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

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

Создание файла [D6, WinXP]


webpauk ©   (2006-02-04 12:31:00) 

Можно ли создать файл типа Record, где Record включает в себя dynamic array?

type
 TREc = record
   caption: string;
 end;
 Trecs = record
   recs: array of Trec
 end;

var
fFile: file of Trecs;


tesseract   (2006-02-05 15:41:00) [1]


> прошу не путать записи как тип (record) и записи в БД =)
> это совершенно разные вещи.


Ни фига например. TurboPower flashfiler так и работает.

Но я же говорю что при создании файлов лучше пользоваться статичным Record. И не забывать, что нужен Packed record.


аноним   (2006-02-04 15:26:00) [2]

webpauk   (04.02.06 13:01) [4]
прошу не путать записи как тип (record) и записи в БД =) это совершенно разные вещи.


Anatoly Podgoretsky   (2006-02-04 13:12:00) [3]

webpauk   (04.02.06 12:31)  
type
TREc = record
  caption: string;
end;


Это приходит к type caption: string;

Trecs = record
  recs: array of Trec
end;


Соответственно это к

Trecs = record
  recs: array of Сaption
end;

и далее к

var
 caption: String;
 fFile: TextFile;

и все задача решена


webpauk   (2006-02-04 13:01:00) [4]


> аноним  

знаю что нельзя
а как реализовано в БД?
там записи то добавляются


аноним   (2006-02-04 12:54:00) [5]

нельзя.

var
fFile: file of Trecs;

вот такая штука никогда не прокатит если в записи есть поля переменной длины. будь то String, динамические массивы или еще чего.


tesseract   (2006-02-04 12:47:00) [6]


> не хотелось делать static array: во-первых, пустые записи
> будут растягивать файл, а, во-вторых, может не хватить места
> для новых записей.

В приниципе может, придётся добавить код для выяснения размера массива. Но сам подумай как ты будешь производить быстрый поиск - ведь длина записи то разная. Такчто лучше делать запись с фиксированным размером, а если есть очень большие данные, то вываливать из в отдельный файл. Так сделано во всех базах данных :-).


webpauk   (2006-02-04 12:36:00) [7]

не хотелось делать static array: во-первых, пустые записи будут растягивать файл, а, во-вторых, может не хватить места для новых записей.


Наверх

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