Вверх ↑
Этот топик читают: Гость
Ответов: 1535
Рейтинг: 176
#1: 2013-03-13 01:32:21 ЛС | профиль | цитата
Нужна помощь. Программа копирует текст из чужого окна, чужой программы для отображения этого текста у себя. Всё просто и решаемо. Проблема в том, что текст этот - список ников. А, они, как известно, могут состоять не только из букв или цифр, но и из различных других символов. Таких как: ✞²°¹³【۞۩『』】○ஐ☭๑ ™ и т.д. Вообщем, текст копируется, но уже без подобных символов, а вместо них знак "?". Как решить проблему?
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Гость
Ответов: 17029
Рейтинг: 0
#2: 2013-03-13 05:54:36 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2017-06-14 22:39:13
карма: 0

0
Ответов: 1535
Рейтинг: 176
#3: 2013-03-13 11:18:40 ЛС | профиль | цитата
3.159.access.ttknet.ru, а чем конвертировать поток сразу в UTF

карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Гость
Ответов: 17029
Рейтинг: 0
#4: 2013-03-13 11:27:09 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2017-06-14 22:39:14
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#5: 2013-03-13 11:30:58 ЛС | профиль | цитата
ser_davkin писал(а):
Вообщем, текст копируется, но уже без подобных символов, а вместо них знак "?"

Чем копируется и чем отображается У нас только RichEdit поддерживает UTF отображение, больше ты ни на чем его не увидешь. И кроме как по Ctrl-C ты никак больше не затолкаешь в RichEdit этот текст. У нас, в HiAsm-e, нет поддержки UTF
карма: 22

0
Ответов: 1535
Рейтинг: 176
#6: 2013-03-13 11:42:41 ЛС | профиль | цитата
nesco писал(а):
Чем копируется и чем отображается
Копирую многострочный текст с помощью вот этой схемы.
Add(SendMessage,15421399,553,210)
{
Message=13
link(onSend,16305821:doGet,[])
link(LParam,1164314:Memory,[(573,187)(636,187)])
}
Add(MemoryStream,1164314,616,140)
{
Point(Memory)
Point(doSize)
}
Add(DataToFile,16305821,616,203)
{
Type=5
link(onGet,14319770:doText,[])
link(Stream,1164314:Stream,[])
}
Add(Hub,8233292,518,147)
{
OutCount=3
link(onEvent1,1164314:doClear,[])
link(onEvent2,1164314:doSize,[])
link(onEvent3,15421399:doSendMessage,[(542,167)(542,216)])
}
Add(RichEdit,14319770,700,189)
{
Left=25
Top=10
Width=335
Height=400
ScrollBars=3
}
23233.jpg
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#7: 2013-03-13 12:08:31 ЛС | профиль | цитата
ser_davkin писал(а):
Копирую многострочный текст с помощью вот этой схемы.

Глядя на текст, то вроде отображает, только не все. Очень похоже, что неотображаемые символы принадлежат не спецсимволам, а вообще другой раскладке. Но это, похоже, не твоя схема виновата, а сам RichEdit, точнее системный конвертор OLE
------------ Дoбавленo в 12.08:
Но что интересно, то твои символы из первого поста вот такая схема отображает прекрасно

Add(MainForm,2953706,231,189)
{
link(onCreate,15780884:doConvert,[])
}
Add(MemoryStream,1164314,308,140)
{
Stream=[ZIP2E00000078DA012E00D1FFEFBBBFE29C9EC2B2C2B0C2B9C2B3E38090DB9EDBA9E3808EE3808FE38091E2978BE0AE90E298ADE0B99120E284A203991FBE]
Point(Memory)
Point(doSize)
}
Add(RichEdit,14319770,392,189)
{
Left=25
Top=10
Width=335
Height=400
ScrollBars=3
}
Add(Convertor,15780884,308,203)
{
Mode=11
link(onResult,14319770:doText,[])
link(Data,1164314:Stream,[])
}


карма: 22

0
Гость
Ответов: 17029
Рейтинг: 0
#8: 2013-03-13 12:09:13 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2017-06-14 22:39:14
карма: 0

0
Разработчик
Ответов: 26151
Рейтинг: 2127
#9: 2013-03-13 12:17:44 ЛС | профиль | цитата
gprs-client-83.149.9.226. писал(а):
Таблица символов

А может действительно там UNICODE, а не UTF
------------ Дoбавленo в 12.17:
Проверил, RichEdit не понимает UNICODE через точку doText, только UTF
карма: 22

0
Ответов: 1535
Рейтинг: 176
#10: 2013-03-13 12:36:54 ЛС | профиль | цитата
nesco, вот Hex этого списка,
code_30562.txt
помоги разобраться.

Получил этот HEX по такой схеме:
Add(SendMessage,15421399,553,210)
{
Message=13
link(onSend,16605623:doConvert,[])
link(LParam,1164314:Memory,[(573,187)(622,187)])
}
Add(MemoryStream,1164314,602,140)
{
Point(Memory)
Point(doSize)
}
Add(Hub,8233292,518,147)
{
OutCount=3
link(onEvent1,1164314:doClear,[])
link(onEvent2,1164314:doSize,[])
link(onEvent3,15421399:doSendMessage,[(542,167)(542,216)])
}
Add(RichEdit,14319770,700,196)
{
Left=25
Top=10
Width=335
Height=400
FileName="ТекстHex.txt"
ScrollBars=3
}
Add(StreamConvertor,16605623,602,210)
{
link(onResult,15179076:doEvent1,[])
link(Data,1164314:Stream,[])
}
Add(Hub,15179076,651,210)
{
link(onEvent1,14319770:doText,[])
link(onEvent2,14319770:doSave,[(690,223)(690,230)])
}
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
файлы: 1code_30562.txt [1.7KB] [332]
Разработчик
Ответов: 26151
Рейтинг: 2127
#11: 2013-03-13 13:05:33 ЛС | профиль | цитата
ser_davkin писал(а):
вот Hex этого списка

HEX уже обрезан по символам, там уже не UTF, а ASCII
карма: 22

0
Ответов: 1535
Рейтинг: 176
#12: 2013-03-13 14:29:07 ЛС | профиль | цитата
Значит, получается SendMessage не умеет работать с UTF? Блин, что же делать-то?
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 8926
Рейтинг: 823
#13: 2013-03-13 14:40:30 ЛС | профиль | цитата
ser_davkin писал(а):
Блин, что же делать-то?
Не вздумайте стреляться!
карма: 19

1
Голосовали:Ex_
Ответов: 1535
Рейтинг: 176
#14: 2013-03-13 15:20:32 ЛС | профиль | цитата
М-м-м, да-а, вот бы прикрутить сниффер, тогда, можно было бы обойти эти грабли. Но как?
карма: 1
Не так страшна ошибка, как опасность её не заметить.

0
Ответов: 16884
Рейтинг: 1239
#15: 2013-03-13 15:32:44 ЛС | профиль | цитата
ser_davkin писал(а):
Блин, что же делать-то?
Не надо копировать текст из другого окна.
Если потянуло к замочной скважине, то (не соглашусь с Леонидом ) застрелись.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)