type
Data = record
name : array [1..25] of Char;
end;
var
inFile : file of Data;
Type needs finalization?..
Но мне без массивов никак.. :(
Код:
Почитайте справку в Delphi, там довольно подробно описано, почему так происходит.
Перебил тип=запись на тип=класс. Компилится, но при операции с массивом плюётся следующим окном (см. приложение)
почему бы не записать просто :array of string[50]; или нужны динамических размеров строки? если так не подходит то единственный выход - писать свой блокврайт.
Вариант, который nikitozz предложил, катит или нет?
Увы - нет..
Буду пробовать задать размерность массива (скажем под 1000 элементов) и как-то крутить дальше. Пока процесс идёт...
Цитата:
почему бы не записать просто :array of string[50]; или нужны динамических размеров строки?
Гудвин
Нет, проблема не в размере строки, а типе массива. Мне оч удобно было бы использовать именно динамический массив.
каждое поле записи Артист храни отдельной строкой, перед сохранением массивов Album и More записываешь отдельной строкой колличество элементов в этих массивах, потом сами эти массивы каждый эллемент построчно.
при чтении этого файла, действуешь аналогично на чтение: считываешь построчно каждое поле, потом колличество элементов массива Album, и в цикле читаешь все элементы Album всё также построчно, аналогично и для More. эта процедура повторяется для каждого эллемента TArtist пока файл не закончится.
если для считывания используется динамический массив TArtist, то самой первой строчкой в этом файле можно хранить колличество элементов для этого массива.
з.ы. таким образом можешь хранить любую информацию без каких либо ограничений.
з.з.ы. а вообще, если файлы будут большие, то тут лучше БД воспользоваться.
Нет. Нужно работать именно с типизированным файлом.
Цитата: sherry
Нет. Нужно работать именно с типизированным файлом.
Ты определись, тебе шашечки или ехать.
Если удобно работать с динамическими массивами - работай. Но процедуру сохранения нужно будет писать самостоятельно, а не надеяться, что Делфи все сделает за тебя.
Кстати, файл не обязан быть текстовым. Гораздо эффективнее работать с бинарным.
типизированный файл и динамические массивы - не совместимые понятия.
Цитата: sherry
Нет. Нужно работать именно с типизированным файлом.
Не выйдет, так как все элементы типизированного файла должны быть одинакового размера. Решения два:
1. Использовать бинарные файлы (по-моему наиболее удобно).
2. Отказаться от динамических массивов (что в контексте данной задачи скорее всего сделать не удастся)