Форум: "Начинающим";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];
ВнизКак записать в memorystream динамический массив Double -ов? Найти похожие ветки
← →
marantz85 (2009-06-23 20:46) [0]Удалено модератором
Примечание: спам
← →
KilkennyCat © (2009-06-23 21:24) [1]А если недубли, то тогда все ясно?
И зачем в памяти гонять туда-сюда?
← →
marantz85 (2009-06-23 21:43) [2]У меня 2 мерный массив, значений эдак на 4000000 (т.е. 8*500000 значений). Допустим 1 массив надо сохранить в файл в двоичном виде. Сохранить поток - самый быстрый путь, по моему! Вот...
← →
Loginov Dmitry © (2009-06-23 21:45) [3]Если динамический (в терминологии Delphi) массив одномерный, то очень просто:
Mass: array of Double;
.................................
ms.Write(Mass[0], Length(Mass) * SizeOf(Double))
если изменений больше, то придется сохранять каждое в отдельности, а заодно хранить информацию о размерах массива.
Если массив динамический в классическом смысле (т.е. память выделяет программист с помощью GetMem() и т.п.), то еще проще:type
PDoubleArray = ^TDoubleArray;
TDoubleArray = array[0..MaxInt div SizeOf(Double) - 1] of Double;
var
Mass: PDoubleArray;
.....
ReallocMem(Mass, ЧислоЭлементов * SizeOf(Double))
.....
ms.Write(Mass^, ЧислоЭлементов * SizeOf(Double));
← →
marantz85 (2009-06-23 21:54) [4]Если 524288 вместо 1048576 то всё работает? Видимо не хватает памяти.
Что можно сделать?
// Сохранение канала в файл
ms:=TMemoryStream.Create;
ms.Position:=0;
ms.Write(Data[0],1048576); // Проблема здесь.
ms.Position:=0;
ms.SaveToFile(fn);
FreeAndNil(ms);
← →
Loginov Dmitry © (2009-06-23 22:01) [5])
> ms.Write(Data[0],1048576); // Проблема здесь.
1048576 - это что за значение?
Сколько всего элементов в массиве? Каким образом устанавливается длина массива? Как объявлена переменная Data?
← →
marantz85 (2009-06-23 22:09) [6]Data: Array Of Array Of Double; // Массив всех исходных данных
Загружаю данные из двоичного файла через memorystream :
SetLength(Data[d], datastream.Size div sizeof(Double));
Размер файла - 4 Мегабайта, там значений 524288
В общем после некоторых действий мне нужно быстренько сохранить это дело в файл.
← →
Loginov Dmitry © (2009-06-23 22:11) [7]Так. Что такое d?
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.005 c