Вернуться   Андрей Панько. Заметки про Dynamics NAV > Dynamics NAV (Navision)
Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Dynamics NAV (Navision) Заметки про Dynamics NAV (ранее Navision) и аддон LS Retail

Ответ
 
Опции темы Поиск в этой теме
  #1  
Старый 22.11.2008, 20:25
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Копирование Stream

Чего-то захотелось скопировать BLOB, точнее из одной карточки товара перенести рисунок в другую.
Можно было бы и через файл, но это не по феншую.

Сделал так:

Код:
rItemFrom.GET('70102'); rItemFrom.CALCFIELDS(Picture); rItemFrom.Picture.CREATEINSTREAM(iStream); rItemTo.GET('1200'); rItemTo.Picture.CREATEOUTSTREAM(oStream); WHILE NOT iStream.EOS DO BEGIN iStream.READ(txt100); oStream.WRITE(txt100); END; rItemTo.MODIFY;

Последний раз редактировалось apanko, 24.11.2008 в 11:18.
Ответить с цитированием
  #2  
Старый 23.11.2008, 11:43
Alterant Alterant вне форума
 
Регистрация: 15.07.2008
Сообщения: 16
По феншую вот так:
Код:
FromRec.GET('1'); FromRec.CALCFIELDS(Picture); ToRec.GET('4'); ToRec.Picture := FromRec.Picture; ToRec.MODIFY;
Ответить с цитированием
  #3  
Старый 23.11.2008, 17:26
Da_Neal Da_Neal вне форума
 
Регистрация: 22.07.2008
Сообщения: 9
Честно говоря не ожидал от тебя такого Андрей
Ответить с цитированием
  #4  
Старый 24.11.2008, 10:19
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Вот для этого и написал.

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

Или из файла, в bigstring. (т.е. акцент на InStream и OutStream).


За комментарии - Спасибо!
Ответить с цитированием
  #5  
Старый 24.11.2008, 12:26
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Продожим тему, за которую меня уже трижды пропозорили (и возможно еще повторят).

Сам виноват - и три минуты не думал о практической ценности приведенного кода.

Пример, опять же будет на базе товаров. Исключительно по причине того, что результат смотреть удобнее. Как уже было указано выше, копировать рисунки между товарами нужно другим способом.


Код:
rItemFrom.get('1000'); rItemFrom.CALCFIELDS(Picture); rItemFrom.Picture.CREATEINSTREAM(iStream); btext.READ(iStream); rItemTo.get('1110'); rItemTo.Picture.CREATEOUTSTREAM(oStream); btext.WRITE(oStream); rItemTo.MODIFY;

Последний раз редактировалось apanko, 08.12.2008 в 19:15.
Ответить с цитированием
  #6  
Старый 08.12.2008, 14:22
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
Вот! Вот то, что я искал:

встроенная функция [OK :=] COPYSTREAM(OutStream, InStream)

Код:
rItemFrom.get('1000'); rItemFrom.CALCFIELDS(Picture); rItemFrom.Picture.CREATEINSTREAM(iStream); rItemTo.get('1110'); rItemTo.Picture.CREATEOUTSTREAM(oStream); COPYSTREAM(oStream,iStream); rItemTo.MODIFY;

PS. Это теоретическое исследование, оно не имеет ничего общего с реальной потребностью в копировании картинок в карточках товаров.

Последний раз редактировалось apanko, 08.12.2008 в 20:09.
Ответить с цитированием
  #7  
Старый 15.01.2009, 11:07
apanko apanko вне форума
Администратор
 
Регистрация: 15.08.2006
Сообщения: 1,629
На данную тему написал целую статью.
Использование потоков InStream и OutStream

Спасибо Alterant, Da_Neal и Fordewind. Без ваших комментариев этого бы не произошло
Ответить с цитированием
Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 08:25.

Контакты: e-mail, телефон: +7(926)1805967 - Архив - Вверх

Microsoft Most Valuable Professional
vBulletin v3.5.4, Copyright ©2000-2018, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co
Права на все материалы, опубликованные на блогофоруме принадлежат Андрею Панько, если в самом материале не указано иное.
Рейтинг@Mail.ru Rambler's Top100