Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.11.02;
Скачать: CL | DM;

Вниз

Сохранение массива в файл   Найти похожие ветки 

 
Vitaliy_____   (2008-09-25 10:09) [0]

Добрый день.
Имеется матрица, объявленная как
array of array of double;
Требуется сохранить ее в файл.
Изначально было сохранение матрицы поэлементно

for i_save:=0 to Mat.SizeY-1 do
for n_save:=0 to Mat.SizeX-1 do
 FileWrite(iFileHandle,Mat.data[i_save,n_save],DoubleVarSize);

где mat.data - и есть матрица, SizeX и SizeY - ее размеры.
Однако при работе с большими матрицами, скажем 9000 элементов этот процесс оказался медленным.
Требуется сохранять матрицу "по строкам", записывая сразу по 9000 элементов. Однако код

StringSize:=SizeX*DoubleVarSize;
 for i_save:=0 to SizeY-1 do
  FileWrite(iFileHandle,TDoubleArray(data[i]),StringSize);

Не работает. Или динамический массив в памяти лежит не последовательно (что вряд ли) или я не понимаю в чем дело.
Подскажите, как лучше решить проблему ускорения записи...


 
Поросенок Винни-Пух ©   (2008-09-25 10:11) [1]

Райтфайлу нужен адрес, а не указатель


 
Поросенок Винни-Пух ©   (2008-09-25 10:14) [2]

function FileWrite(Handle: Integer; const Buffer; Count: LongWord): Integer;

data[i] это динамический массив, то есть ты передаешь указатель вместо адреса по которому расположены элементы


 
Vitaliy_____   (2008-09-25 10:17) [3]

Извиняюсь за пустой вопрос... Туплю я - читаю/пишу ссылки а не сами элементы...
Достаточно исправить на
FileWrite(iFileHandle,data[i,0],StringSize);
Самому смешно :)


 
Vitaliy_____   (2008-09-25 10:18) [4]


>
> data[i] это динамический массив, то есть ты передаешь указатель
> вместо адреса по которому расположены элементы

Во-во. Достаточно дать его 0 элемент и писать все. Сейчас проверю, вроде работает...



Страницы: 1 вся ветка

Текущий архив: 2008.11.02;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
15-1220277220
oldman
2008-09-01 17:53
2008.11.02
Предупреждение "начинающим"


2-1222116408
ShyricK
2008-09-23 00:46
2008.11.02
Вопрос по функционированию ЭВМ (дешифратор)


15-1220890603
koha!
2008-09-08 20:16
2008.11.02
Странное явление


4-1199360443
S7r
2008-01-03 14:40
2008.11.02
Событие изменения check box в tree view


15-1221016514
Василий Жогарев
2008-09-10 07:15
2008.11.02
Программирование под Unix- подобные системы.