Сохранение динамических массивов
TArray2 = array of array of byte;
TArray сохраняется в файл так:
FileWrite(FH, Pointer(Array)^, 10);
А как сохранить TArray2???
TArray = array of byte;
TArray2 = array of array of byte;
TArray сохраняется в файл так:
FileWrite(FH, Pointer(Array)^, 10);
А как сохранить TArray2???
Ручками, построчно, с сохранением длины каждой строки.
Ручками, построчно, с сохранением длины каждой строки.
Построчно не охота (запись в файл большое кол-во раз)
Длины строк сохраняются, но основная проблема - это добиться сохранения за раз, без выделения дополнительной памяти.
Пока я делаю так:
1. Выделяю память, равную размеру массива.
2. Последовательно, заполняю её данными из масива.
3. Сохраняю данные из выделенной памяти
В итоге получаем: необходимость выделять дополнительную память, равную размеру данных в масиве, перебор всего массива, для копирования данных, ЗАПИСЬ В ФАЙЛ ЗА ОДИН РАЗ!
Пока я делаю так:
1. Выделяю память, равную размеру массива.
2. Последовательно, заполняю её данными из масива.
3. Сохраняю данные из выделенной памяти
Хм, зачем?? Неужели ты думаешь, что если писать в файл один большой кусок за один раз будет быстрее? Ничуть.
Программа же на Дельфи вроде. А все программы Win32 пишут через кэш, если только кэширование записи не отключено средствами администрирования Windows. Но тогда все программы будут работать медленнее, не только твоя.
Хм, зачем?? Неужели ты думаешь, что если писать в файл один большой кусок за один раз будет быстрее? Ничуть.
Программа же на Дельфи вроде. А все программы Win32 пишут через кэш, если только кэширование записи не отключено средствами администрирования Windows. Но тогда все программы будут работать медленнее, не только твоя.
А вот про кеш я позабыл, спасибо.