Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.08.23;
Скачать: [xml.tar.bz2];

Вниз

Как переписать данные из динамического массива в 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.005 c
15-1245307503
an-petroff
2009-06-18 10:45
2009.08.23
Веб-сервер должен писать в Interbase DB, а не хочет!


2-1245759052
@!!ex
2009-06-23 16:10
2009.08.23
Продублировать Control на двух TabSheet


15-1245756951
tesseract
2009-06-23 15:35
2009.08.23
FireBird прошёл в финалисты Community choice


2-1245831668
Polkin
2009-06-24 12:21
2009.08.23
Убрать XPManifest


1-1212748708
Ольга
2008-06-06 14:38
2009.08.23
Компонента cxGrid (DevExpress)





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский