powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Заполнение RichTextEdit
14 сообщений из 14, страница 1 из 1
Заполнение RichTextEdit
    #35671166
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть Blob. А можно как-то заполнить RichTextEdit не через файл?
...
Рейтинг: 0 / 0
Заполнение RichTextEdit
    #35671375
Uzrptav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как вариант, можно попробовать на примере Word файла полученого из БД :
1. передать Блоб в Оле;
2. выделить и скопировать все
3. вставить в RTE control
4. проводить дальнейшие манипуляции
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
  SELECTblob "Table"."Pole1"  
    INTO :lblob1  
    FROM "Table"  
   WHERE "Table"."Pole2" = :INPUT
	using sqlca;
ole_1.ObjectData =lblob1
	
if POS(OLE_1.ClassLongName,'Word') >  0  then

	ole_1.activate(OffSite!)

ole_1.object.application.Selection.WholeStory
ole_1.object.application.Selection.Copy

rte_1.paste()

garbagecollect()
ole_1.object.application.quit()
OLE_1.object.DisconnectObject()

k1 =  rte_1.Find("Критерий поиска",TRUE, TRUE, FALSE, FALSE)
end if
...
Рейтинг: 0 / 0
Заполнение RichTextEdit
    #35671380
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наверное все-таки перевести в string если просто техт
Если нет то использовать темп проще чем парсить rtf формат, хотя и это делалось
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Заполнение RichTextEdit
    #35671394
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То Uzrptav
Это нормально работает? Ели работает, то классное решение, буду использовать
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Заполнение RichTextEdit
    #35671408
Yurk0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
blob rte_doc
string ls_richtext
SELECTBLOB qtext INTO  :rte_doc
        FROM  DBA.QTABLE
        WHERE ID = :id_qid
        USING SQLCA ;
ls_richtext = string(rte_doc)
this.rte_q.selecttextall( )
this.rte_q.clear( )
this.rte_q.pastertf( ls_richtext)
...
Рейтинг: 0 / 0
Заполнение RichTextEdit
    #35671457
Uzrptav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
spas2001Если нет то использовать темп...
Как то так?

Код: plaintext
Function ulong GetTempPathA(ulong nBufferLength, ref string lpBuffer) Library "KERNEL32.DLL"// Alias for "GetTempPathA"\nFunction long GetTempFileName(string lpszPath,string lpPrefixString, UINT uUnique,ref string lpTempFileName) Library "kernel32.dll" Alias for "GetTempFileNameA"\nFUNCTION ulong  CreateFileA( ref string lpFileName , ulong lpPrefixString, ulong dwShareMode, ref string lpSecurityAttributes, ulong dwCreationDisposition,  ulong dwFlagsAndAttributes,  ulong hTemplateFile) LIBRARY "Kernel32.dll"\nFunction Boolean CloseHandle(Ulong hObject) Library "kernel32.dll"\nFUNCTION boolean  WriteFile(ulong hFile, ref blob lpBuffer,  ulong nNumberOfBytesToWrite, ref  ulong lpNumberOfBytesWritten, ref string lpOverlapped) LIBRARY "Kernel32.dll"  


Код: plaintext
$PBExportHeader$create_temp_file.srf\nglobal type create_temp_file from function_object\nend type\n\nforward prototypes\nglobal function string create_temp_file (blob bl)\nend prototypes\n\nglobal function string create_temp_file (blob bl);ulong l,p1,rez,lpPrefixString,dwShareMode,dwCreationDisposition,dwFlagsAndAttributes,hTemplateFile\nULONG hFile,nNumberOfBytesToWrite,lpNumberOfBytesWritten\nlong li_FileNum,rez_write,i,POR_NOM,lu_val\nstring lpPathBuffer,szTempName,str,lpFileName,lpSecurityAttributes,lpOverlapped,ls_username\nboolean b_rez\nblob lpBuffer\n\n\nIF isNull(bl) = false THEN\n\t\n\tlpPathBuffer = Space(  260  )\n\t\t\tszTempName = Space(  260  )\n\t\t\t/*******************************\n\t\t\t*\tВызов GetTempPathA   \t\t *\n\t\t\t*******************************/\n\t\t\t//GetTempPathA( 260 ,lpPathBuffer)\n\t\t\t/*******************************\n\t\t\t*\tВызов GetTempFileName  \t\t *\n\t\t\t*******************************/\n\t\t\t//rez = GetTempFileName(lpPathBuffer, \'NEW\',  0 , szTempName) //rez =  0  - fail\n\t\t\t\n\t\t\tl = setnull(l)\n\t\t\t//-----------CreateFileA-----------------\n\t\t\tszTempName = \'c:\\Temp\\TEMP_FILE_FROM_BLOB\'\n\t\t\tlpPrefixString =  2 \n\t\t\tdwShareMode =  4 \n\t\t\tSetNull(lpSecurityAttributes)\n\t\t\tdwCreationDisposition =  4 \n\t\t\tdwFlagsAndAttributes =  128 \n\t\t\tSetNull(hTemplateFile)\n\n\thFile = CreateFileA(szTempName, lpPrefixString, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile)\n\t\t\t\n\t\t\tlpBuffer = bl\n\t\t\tnNumberOfBytesToWrite = len(bl)\n\t\t\tSetNull(lpOverlapped)\n\nb_rez = WriteFile(hFile, lpBuffer ,  nNumberOfBytesToWrite, lpNumberOfBytesWritten, lpOverlapped)\n\t\t\t\n\t\t\tCloseHandle(hFile)\n\t\tend if\n\t\t\n\treturn\tszTempName\nend function\n

To spas2001. Пытался сделать по вашим советам, не судите строго
тынц
...
Рейтинг: 0 / 0
Заполнение RichTextEdit
    #35671545
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да действительно обсуждали, всего и не упомнишь, но последнее решение красиво
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Заполнение RichTextEdit
    #35672855
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UzrptavКак вариант, можно попробовать на примере Word файла полученого из БД :
1. передать Блоб в Оле;
2. выделить и скопировать все
3. вставить в RTE control
4. проводить дальнейшие манипуляции
...

Решение интересное, но в этом случае OLE здесь лишнее. Можно Blob просто вставить в Clipboard и потом используя Paste таки вставить содержимое в RichTextEdit, причем всё равно какого расширения (из допустимых) в Blob сидит "файл".
Этот вариант и вариант закачки через файл не подходят, т.к. думаю, что это большая дырка для утечки инфы. Blob шифрованный и перед вставкой в RichTextEdit дешифруется.
Первым перехватить Clipboard - не факт. А файл даже если и успеть удалить, не факт, что его нельзя восстановить. И это самые примитивные на мой взляд действия, которые могут быть применены для получения инфы третьими лицами.
Может как-то ещё можно?

P.S. ДВРЗ->Дарница->Київ :)
...
Рейтинг: 0 / 0
Заполнение RichTextEdit
    #35673687
SasaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сорри за оффтоп - земляк - а что это у тебя там на Дарнице за контора, что до сих пор юзает такой редкий и непопулярный ПаверБилдер ?
...
Рейтинг: 0 / 0
Заполнение RichTextEdit
    #35675138
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SasaRсорри за оффтоп - земляк - а что это у тебя там на Дарнице за контора, что до сих пор юзает такой редкий и непопулярный ПаверБилдер ?
Это он в быту не настолько популярен, а в банковской среде очень даже и очень. И причем не самые мелкие, и давно на него подсели, и спрыгнут не могут. :))
...
Рейтинг: 0 / 0
Заполнение RichTextEdit
    #35675971
ForestGump
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SasaRсорри за оффтоп - земляк - а что это у тебя там на Дарнице за контора, что до сих пор юзает такой редкий и непопулярный ПаверБилдер ?

Кстати говоря я знаю что в Канаде к примеру почти везде в банках ПО написано на ПБ. Так что ПБ будеь жить :)
...
Рейтинг: 0 / 0
Заполнение RichTextEdit
    #35676097
SasaR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Будет - то будет, но все очень желают с него спрыгнуть :(
...
Рейтинг: 0 / 0
Заполнение RichTextEdit
    #35772117
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry, за подъем старой темы, хочу несколько подправить вызов функций у коллеги
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
lpPathBuffer = Space(  256  )
			szTempName = Space(  256  )
			/*******************************
			*	Вызов GetTempPathA   		 *
			*******************************/
			rez = GetTempPathA(len(lpPathBuffer) ,ref lpPathBuffer)
			/*******************************
			*	Вызов GetTempFileName  		 *
			*******************************/
			rez = GetTempFileName(lpPathBuffer, 'TMP_BLOB',  1 , ref szTempName) 
Вот теперь будет работать
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
Заполнение RichTextEdit
    #35772187
Фотография spas2001
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если нужна автонумерация то
Код: plaintext
rez = GetTempFileName(lpPathBuffer, 'TMP',  0 , ref szTempName)
-----------------------------------------------------------------------------
Главная деталь любой машины - голова ее владельца
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Заполнение RichTextEdit
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]