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

Вниз

Как переписать данные из динамического массива в memorystream?   Найти похожие ветки 

 
marantz85   (2009-06-22 18:34) [0]

Удалено модератором
Примечание: спам


 
Медвежонок Пятачок ©   (2009-06-22 18:38) [1]

Может все же не write a read?


 
Медвежонок Пятачок ©   (2009-06-22 18:38) [2]

это для начала....


 
Медвежонок Пятачок ©   (2009-06-22 18:41) [3]

хотя нет, write конечно.
:)


 
Медвежонок Пятачок ©   (2009-06-22 18:42) [4]

двумерный динамический массив даблов это непрерывный кусок памяти.
зачем здесь цикл вообще?


 
Anatoly Podgoretsky ©   (2009-06-22 18:49) [5]


> двумерный динамический массив даблов это непрерывный кусок
> памяти.

Никогда таким не являлся, это вообще то два разных массива, массив массивов, и ни о каком куске памяти говорить не приходится.


 
Медвежонок Пятачок ©   (2009-06-22 18:50) [6]

ну хорошо.
каждая строка это непрерывный кусой памяти.


 
Anatoly Podgoretsky ©   (2009-06-22 18:58) [7]

Да нету никаких "строк", есть массив, содержащий другие массивы. А другие массивы также могут быть не простой структуры, например строки


 
Медвежонок Пятачок ©   (2009-06-22 20:05) [8]

у него не строки а Double


 
marantz85   (2009-06-22 20:50) [9]

Народ, суть не в том какой массив, а почему значения не пишутся в memory stream.  Я пытался засунуть туда массив целиком, но Delphi ругается на ошибочное обращение к памяти.


 
Anatoly Podgoretsky ©   (2009-06-22 20:55) [10]

> Медвежонок Пятачок  (22.06.2009 20:05:08)  [8]

Какая разница - для понимания, что говорить о непрерывности можно только с определенными натяжками, а в данном случае и это не натянуть. Никакого непрерывного блока памяти не наблюдается.


 
Медвежонок Пятачок ©   (2009-06-22 21:59) [11]

array of double вдруг перестал быть непрерывным куском памяти?


 
Германн ©   (2009-06-23 00:23) [12]


> marantz85   (22.06.09 20:50) [9]
>
> Народ, суть не в том какой массив, а почему значения не
> пишутся в memory stream.  Я пытался засунуть туда массив
> целиком, но Delphi ругается на ошибочное обращение к памяти.
>

Если


 
Германн ©   (2009-06-23 00:27) [13]


> marantz85   (22.06.09 20:50) [9]
>
> Народ, суть не в том какой массив, а почему значения не
> пишутся в memory stream.  Я пытался засунуть туда массив
> целиком, но Delphi ругается на ошибочное обращение к памяти.
>

Если "Delphi ругается на ошибочное обращение к памяти", то нужно приводить саму ругань дословно и приводить сведения на какой строке ругается.
P.S. Знаю  на 99.9% на какого типа строке. Но в "Основной" об этом стыдно говорить.


 
marantz85   (2009-06-23 17:56) [14]

Delphi ругается на строку ms.Write! (если пытаться закинуть целиком)
В общем я пробывал целиком и по элементно. Когда работает поэлементно, код выполняется нормально, но при обратном преобразование из memorystream в массив пишутся нули, вместо значений. И я не понимаю почему. Вот...


 
Медвежонок Пятачок ©   (2009-06-23 18:13) [15]

потому что не смотришь на типы параметров у рида


 
Медвежонок Пятачок ©   (2009-06-23 18:22) [16]

либо текущая позиция стрима не та что надо


 
Игорь Шевченко ©   (2009-06-23 19:46) [17]


>   ms.SaveToFile(fn);


   ms.Position := 0;
   ms.SaveToFile(fn);


 
Германн ©   (2009-06-23 21:24) [18]


> marantz85   (23.06.09 17:56) [14]
>
> Delphi ругается на строку ms.Write! (если пытаться закинуть
> целиком)

Пиши так:

>  ms.Write(Data[0],SizeOf(Double)*Length(Data));

тогда ругаться не будет.


 
KilkennyCat ©   (2009-06-23 21:30) [19]

А... почитал другую ветку... а я ведь сразу понял, что конечным итогом является желание сохранить в файл... К;огда захочется на нем нарисовать, то спросят, как сохранить массив в ТБитМап...


 
marantz85   (2009-06-23 21:37) [20]

Спасибо, помогло! Теперь другая проблема.
SizeOf(Double)*Length(Data[0]) у меня = 4194304
С маленькими значениями получается, а с таким выдаёт ошибку!


 
Германн ©   (2009-06-23 21:47) [21]


> marantz85   (23.06.09 21:37) [20]
>
> Спасибо, помогло! Теперь другая проблема.
> SizeOf(Double)*Length(Data[0]) у меня = 4194304

Это что за хрень?


 
marantz85   (2009-06-23 21:57) [22]

Это количество байт для записи в memorystream. Видимо большое значение.
Когда 524288 всё работает нормально.


 
Сергей М. ©   (2009-06-23 22:09) [23]


> у меня появилась следующая проблема


У тебя не проблема - у тебя геморрой, который даже к 22-му посту мешает тебе продемонстрировать местной общественности декларацию идентификатора Data)


 
KilkennyCat ©   (2009-06-23 22:13) [24]


> Сергей М. ©   (23.06.09 22:09) [23]

А смысл? Он просто не нашел у массива savetofile, и теперь извращается. Потом будет реализовывать load, и будет еще страннее...



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

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

Наверх




Память: 0.52 MB
Время: 0.011 c
15-1245612165
Холивар
2009-06-21 23:22
2009.08.23
IDirect3DTexture9 самый простой способ копирования данных с HDC.


3-1226317325
Valerik
2008-11-10 14:42
2009.08.23
Ошибка при записи в таблицу Access


15-1246001034
Василий Жогарев
2009-06-26 11:23
2009.08.23
PostgreSQL 8.3 and DataType serial


2-1245226924
девушка
2009-06-17 12:22
2009.08.23
Вызов ХП из FastReport


15-1245821248
Andy BitOff
2009-06-24 09:27
2009.08.23
Тут как-то пробегала ссылка...