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