![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
sono |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 10.1.2008 Где: KHARKOV Репутация: -1 Всего: -1 |
Что-то не пойму никак или действительно бока или меня глючит?
Значит есть два tmemorystream и динамический масив, надо записать масив в первый стрим из этого стрима в другой а потом из друго-го выгрузить и посмотреть что мы имеем. Нет не думайте со мной всё впорядке -- просто хочу таким макаром хранить масивы в БД (tblobstream). Значит делаю всё так:
..... выводится только первый элемент массива(остальные нули)? P.S.: но со статическим масивом при точ таком раскладе всё нормально? |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
1. Что такое "а"?
2. s.Write(a[0], Length(a) * SizeOf(a[0])); 3. t:=s; - это что? |
|||
|
||||
sono |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 10.1.2008 Где: KHARKOV Репутация: -1 Всего: -1 |
1) a - исходный масив который я загонял в стрим
3)t:=s ; ( в результате это будет: t- memorystream, a s- tblobstream) 2) а вот этого мне и не хватало -- теперь всё работает, блин как это у вас просто получается ... тут понимаешься паришся из-за этой мелочи кучу времени, Snowy только посмотрел - и в результате всё просто,- так наверно пора сделать перерыв . Да кстати спасибо! |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
Нет, в результате t станет s, а исходный t потеряется и приведёт к утечке памяти.
Хотя ты всё равно не освобождаешь ни тот, ни другой стрим. Так что память теряется в любом случае. Так я и спрашивал - что за массив? Массив чего? Если примитивных типов, то ответ дан. Если строк или других сложных типов, то принцип работы будет другим. Ну так ты получал размер массива, а не выделенной памяти... Дык... Профессия наша такая ![]() Всегда пожалуйста. |
|||
|
||||
sono |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 10.1.2008 Где: KHARKOV Репутация: -1 Всего: -1 |
snowy с этим вроди как разобрался, теперь двигаюсь далее т.к. главной целью было хранение массива при помощи стрима в бд...
Значит на основании выше изложеного двигаюсь далее : - исходные данные: есть масив A загруженный в memorystream T - беру adotable подключаю таблицу .mdb с полем 'dat' (тип Memo) -при помощи LoadFromStream заганяю стрим в БД
-готово, теперь для проверки делаю обратное
- сверяем - алё? а где мой массив? |
||||
|
|||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 31 Всего: 484 |
А зачем ты засовываешь бинарные данные в Memo?
Твой массив погиб на первом же некорректном знаке. Например 0. |
|||
|
||||
sono |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 82 Регистрация: 10.1.2008 Где: KHARKOV Репутация: -1 Всего: -1 |
а тогда как надо?
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |