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

Ваш аккаунт

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

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

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

Сохранение динамических массивов

8.8K
03 ноября 2004 года
minmax
4 / / 03.11.2004
TArray = array of byte;
TArray2 = array of array of byte;
TArray сохраняется в файл так:
FileWrite(FH, Pointer(Array)^, 10);
А как сохранить TArray2???
10
03 ноября 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by minmax
TArray = array of byte;
TArray2 = array of array of byte;
TArray сохраняется в файл так:
FileWrite(FH, Pointer(Array)^, 10);
А как сохранить TArray2???


Ручками, построчно, с сохранением длины каждой строки.

8.8K
09 ноября 2004 года
minmax
4 / / 03.11.2004
Цитата:
Originally posted by smartsoft

Ручками, построчно, с сохранением длины каждой строки.



Построчно не охота (запись в файл большое кол-во раз)
Длины строк сохраняются, но основная проблема - это добиться сохранения за раз, без выделения дополнительной памяти.
Пока я делаю так:
1. Выделяю память, равную размеру массива.
2. Последовательно, заполняю её данными из масива.
3. Сохраняю данные из выделенной памяти
В итоге получаем: необходимость выделять дополнительную память, равную размеру данных в масиве, перебор всего массива, для копирования данных, ЗАПИСЬ В ФАЙЛ ЗА ОДИН РАЗ!

10
09 ноября 2004 года
Freeman
3.2K / / 06.03.2004
Цитата:
Originally posted by minmax
Пока я делаю так:
1. Выделяю память, равную размеру массива.
2. Последовательно, заполняю её данными из масива.
3. Сохраняю данные из выделенной памяти


Хм, зачем?? Неужели ты думаешь, что если писать в файл один большой кусок за один раз будет быстрее? Ничуть.

Программа же на Дельфи вроде. А все программы Win32 пишут через кэш, если только кэширование записи не отключено средствами администрирования Windows. Но тогда все программы будут работать медленнее, не только твоя.

8.8K
13 ноября 2004 года
minmax
4 / / 03.11.2004
Цитата:
Originally posted by smartsoft

Хм, зачем?? Неужели ты думаешь, что если писать в файл один большой кусок за один раз будет быстрее? Ничуть.

Программа же на Дельфи вроде. А все программы Win32 пишут через кэш, если только кэширование записи не отключено средствами администрирования Windows. Но тогда все программы будут работать медленнее, не только твоя.



А вот про кеш я позабыл, спасибо.

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