Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Type needs finalization?..

431
16 августа 2008 года
sherry
207 / / 16.10.2006
Чего ему сделать?.. Может ругается из-за динамических массивов и ограниченных строк?
Но мне без массивов никак.. :(
288
16 августа 2008 года
nikitozz
1.2K / / 09.03.2007
К сожалению, экзэмпляры записи, в состав которых воходит член типа string не получится сохранять в файле file of ..... Как альтернативу предлагается использовать что-то типа такого
 
Код:
type
    Data = record
      name : array [1..25] of Char;
    end;

  var
    inFile : file of Data;

Почитайте справку в Delphi, там довольно подробно описано, почему так происходит.
431
16 августа 2008 года
sherry
207 / / 16.10.2006
Перебил тип=запись на тип=класс. Компилится, но при операции с массивом плюётся следующим окном (см. приложение)
3.2K
17 августа 2008 года
Гудвин
186 / / 22.12.2007
file of TClass - такого в делфи на сколько мне известно нет.
почему бы не записать просто :array of string[50]; или нужны динамических размеров строки? если так не подходит то единственный выход - писать свой блокврайт.
6
18 августа 2008 года
George
4.1K / / 05.01.2007
Вариант, который nikitozz предложил, катит или нет?
431
19 августа 2008 года
sherry
207 / / 16.10.2006
Washington
Увы - нет..

Буду пробовать задать размерность массива (скажем под 1000 элементов) и как-то крутить дальше. Пока процесс идёт...
431
19 августа 2008 года
sherry
207 / / 16.10.2006
Цитата:
почему бы не записать просто :array of string[50]; или нужны динамических размеров строки?


Гудвин
Нет, проблема не в размере строки, а типе массива. Мне оч удобно было бы использовать именно динамический массив.

3.2K
19 августа 2008 года
Гудвин
186 / / 22.12.2007
воспользуйся обычным Textfile
каждое поле записи Артист храни отдельной строкой, перед сохранением массивов Album и More записываешь отдельной строкой колличество элементов в этих массивах, потом сами эти массивы каждый эллемент построчно.
при чтении этого файла, действуешь аналогично на чтение: считываешь построчно каждое поле, потом колличество элементов массива Album, и в цикле читаешь все элементы Album всё также построчно, аналогично и для More. эта процедура повторяется для каждого эллемента TArtist пока файл не закончится.
если для считывания используется динамический массив TArtist, то самой первой строчкой в этом файле можно хранить колличество элементов для этого массива.

з.ы. таким образом можешь хранить любую информацию без каких либо ограничений.
з.з.ы. а вообще, если файлы будут большие, то тут лучше БД воспользоваться.
431
19 августа 2008 года
sherry
207 / / 16.10.2006
Нет. Нужно работать именно с типизированным файлом.
1.9K
19 августа 2008 года
andriano
474 / / 10.01.2008
Цитата: sherry
Нет. Нужно работать именно с типизированным файлом.


Ты определись, тебе шашечки или ехать.
Если удобно работать с динамическими массивами - работай. Но процедуру сохранения нужно будет писать самостоятельно, а не надеяться, что Делфи все сделает за тебя.
Кстати, файл не обязан быть текстовым. Гораздо эффективнее работать с бинарным.

3.2K
19 августа 2008 года
Гудвин
186 / / 22.12.2007
типизированный файл и динамические массивы - не совместимые понятия.
288
20 августа 2008 года
nikitozz
1.2K / / 09.03.2007
Цитата: sherry
Нет. Нужно работать именно с типизированным файлом.



Не выйдет, так как все элементы типизированного файла должны быть одинакового размера. Решения два:
1. Использовать бинарные файлы (по-моему наиболее удобно).
2. Отказаться от динамических массивов (что в контексте данной задачи скорее всего сделать не удастся)

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог