Вверх ↑
Этот топик читают: Гость
Ответов: 92
Рейтинг: 1
#1: 2019-10-17 12:46:37 ЛС | профиль | цитата
Второй день мучаюсь не могу решить задачу. Нужно конвертировать текст

text nu text
Вся сложность для меня в том, что все вперемешку.


Add(Edit,14621716,203,455)
{
Left=5
Top=5
Width=400
Text="text nu text"
}
Add(Button,15316937,63,565)
{
Left=10
Top=35
link(onClick,1138751:doEvent1,[])
}
Add(Str_Enum,1905308,203,579)
{
Delimiter=""
link(onEnum,7328343:doCase,[])
link(onEndEnum,2341893:In,[])
link(String,14621716:Text,[])
}
Add(IndexToChanel,3639663,403,579)
{
Point(Data)
Point(Index)
link(onEvent1,7018223:doWork2,[])
link(onEvent2,5006024:doCase,[])
link(Data,9845510:getVar,[])
link(Index,10490059:Value,[])
}
Add(CharArray,2661129,1283,511)
{
link(onGetStr,10477837:doEvent1,[])
}
Add(ArrayRW,13770070,1283,565)
{
link(Array,2661129:Array,[])
}
Add(Case,7328343,298,579)
{
Value=String(&)
DataOnTrue=Integer(1)
link(onNextCase,3639663:doEvent,[])
link(onTrue,4289354:doWork2,[(387,592)(387,525)])
}
Add(Case,5006024,470,586)
{
Value=String(#)
DataOnTrue=Integer(1)
link(onNextCase,16079249:doEvent,[])
link(onTrue,1686965:doValue,[(552,599)(552,532)])
}
Add(Memory,10490059,410,519)
{
Default=Integer(0)
}
Add(Memory,1686965,574,526)
{
Default=Integer(0)
}
Add(Hub,14470588,1194,586)
{
OutCount=3
link(onEvent1,5722715:doWork1,[(1220,592)(1220,482)])
link(onEvent2,11100288:doData,[])
link(onEvent3,5759759:doWork2,[])
}
Add(DoData,11100288,1225,593)
{
Data=String(&)
link(onEventData,2376014:doWork2,[])
}
Add(HubEx,7018223,1265,579)
{
link(onEvent,13770070:doAdd,[])
}
Add(HubEx,2376014,1265,593)
{
Angle=3
link(onEvent,7018223:doWork3,[])
}
Add(IndexToChanel,16079249,574,586)
{
Point(Index)
link(onEvent1,14470588:doEvent1,[])
link(onEvent2,1173227:doCase,[])
link(Index,1686965:Value,[])
}
Add(Counter,3591153,812,640)
{
Max=2
Default=-1
link(onNext,13235648:doCase,[])
}
Add(Hub,6602952,754,600)
{
link(onEvent1,14656065:doNext,[])
link(onEvent2,3591153:doNext,[(797,613)(797,646)])
}
Add(Case,13235648,871,640)
{
Value=Integer(2)
DataOnTrue=Integer(0)
link(onTrue,1266722:doEvent1,[])
}
Add(IndexToChanel,10872657,921,600)
{
Count=3
Point(Data)
link(onEvent1,8015057:doValue,[(1005,606)(1005,508)])
link(onEvent2,1265949:doValue,[(1017,613)(1017,538)])
link(Data,8629829:getVar,[])
}
Add(Counter,14656065,852,600)
{
Max=2
Default=-1
link(onNext,10872657:doEvent,[])
}
Add(LineBreakEx,1817374,272,526)
{
Caption="def"
Type=1
link(OnEvent,15337042:doEvent1,[])
}
Add(Hub,15337042,320,526)
{
OutCount=3
link(onEvent1,10490059:doClear,[])
link(onEvent2,1686965:doClear,[])
link(onEvent3,6422056:doClear,[])
}
Add(LineBreakEx,1962425,968,633)
{
Caption="def"
}
Add(LineBreakEx,6577383,210,622)
{
Caption="s"
Type=3
link(_Data,1905308:Part,[])
}
Add(LineBreakEx,9845510,403,555)
{
Caption="s"
Type=2
}
Add(Hub,1266722,929,647)
{
link(onEvent1,1962425:doWork,[(952,653)(952,639)])
link(onEvent2,536325:doStrCat,[(1000,660)(1000,679)])
}
Add(LineBreakEx,8629829,921,564)
{
Caption="s"
Type=2
}
Add(StreamConvertor,7643679,1123,673)
{
Mode=3
link(onResult,12362191:doCharset,[])
}
Add(Charset,12362191,1167,673)
{
Type=9
link(onCharset,2544517:doWork1,[(1277,679)(1277,657)])
}
Add(LineBreak,12951206,1232,511)
{
Caption="end"
link(Out,2661129:doGetStr,[(1274,517)(1274,524)])
Primary=[2341893,-980,75]
}
Add(HubEx,5759759,1265,600)
{
Angle=3
link(onEvent,2376014:doWork3,[])
}
Add(Hub,1138751,129,565)
{
OutCount=3
link(onEvent1,16645260:doWork,[(152,571)(152,563)])
link(onEvent2,7617810:doWork,[])
link(onEvent3,1905308:doEnum,[])
}
Add(LineBreakEx,16645260,161,557)
{
Caption="def"
}
Add(LineBreakEx,8140191,1227,533)
{
Caption="sclr"
Type=1
link(OnEvent,2661129:doClear,[(1273,539)(1273,531)])
}
Add(LineBreakEx,7617810,160,572)
{
Caption="sclr"
}
Add(Hub,10477837,1328,518)
{
OutCount=3
link(onEvent1,6009960:doWork,[(1352,524)(1352,510)])
link(onEvent2,12985462:doAdd,[(1378,531)(1378,629)])
}
Add(LineBreakEx,6009960,1362,504)
{
Caption="sclr"
}
Add(RichEdit,12985462,1414,623)
{
Left=10
Top=65
Width=495
Height=490
ScrollBars=3
}
Add(Case,1173227,624,593)
{
Value=String(x)
DataOnTrue=Integer(1)
link(onNextCase,6469920:doEvent,[])
link(onTrue,6422056:doValue,[(682,606)(682,539)])
}
Add(Memory,6422056,707,533)
{
Default=Integer(0)
}
Add(IndexToChanel,6469920,707,593)
{
Point(Index)
link(onEvent1,3461579:doEvent1,[(937,599)(937,615)])
link(onEvent2,6602952:doEvent1,[])
link(Index,6422056:Value,[])
}
Add(Hub,3461579,1136,609)
{
OutCount=3
link(onEvent1,5722715:doWork3,[(1171,615)])
link(onEvent2,11064903:doData,[(1194,622)(1194,650)])
link(onEvent3,2544517:doWork2,[(1186,629)(1186,657)])
}
Add(DoData,11064903,1223,644)
{
Data=String(&#)
link(onEventData,8596070:doWork2,[])
}
Add(HubEx,8596070,1265,644)
{
Angle=3
link(onEvent,5759759:doWork3,[])
}
Add(HubEx,2544517,1265,651)
{
Angle=3
link(onEvent,8596070:doWork3,[])
}
Add(StrCat,536325,1057,673)
{
link(onStrCat,7643679:doConvert,[])
link(Str1,8015057:Value,[])
link(Str2,1265949:Value,[])
}
Add(Memory,8015057,1057,502)
{
}
Add(Memory,1265949,1064,532)
{
}
Add(HubEx,4289354,392,519)
{
link(onEvent,10490059:doValue,[])
}
Add(HubEx,5722715,1167,476)
{
Angle=3
link(onEvent,4289354:doWork3,[(1171,465)(396,465)])
}
Add(Convertor,15664405,679,707)
{
Mode=5
Digits=8
}

карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 8887
Рейтинг: 823
#2: 2019-10-17 13:35:24 ЛС | профиль | цитата
Vandjer писал(а):
Нужно конвертировать текст

Что и во что "конвертировать", какие разделители, примеры входящих текстов, где всё "вперемешку".
text nu text --> ??
карма: 19

0
Ответов: 92
Рейтинг: 1
#3: 2019-10-17 13:46:58 ЛС | профиль | цитата
Леонид писал(а):
Что и во что "конвертировать", какие разделители, примеры входящих текстов, где всё "вперемешку".
text nu text --> ??


text nu text --> text nu text
CareFY --> CareFY
bigpond --> bigpond
вот таблица http://www.howtocreate.co.uk/sidehtmlentity.html

--- Добавлено в 2019-10-17 14:27:50

Браузер конвертирует без проблем. Как достать этот текст

Add(Button,2799968,343,399)
{
Left=15
Top=25
Data=String(bigpondσ)
link(onClick,1539954:doFromText,[])
}
Add(WebBrowser,1539954,448,371)
{
Left=10
Top=55
Point(doFromText)
}


Редактировалось 4 раз(а), последний 2019-10-17 14:27:50
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#4: 2019-10-17 14:32:59 ЛС | профиль | цитата
Чисто для примера
Схема

Add(MainForm,2953706,119,112)
{
}
Add(MultiReplace,15227485,175,161)
{
ReplaceList="n = n,\r\nu = u,\r\na = a,\r\ne = e,\r\nF = F,\r\ni = i,\r\ng = g,\r\no = o,\r\nd = d,"
EndSymbol=","
link(onResult,4426133:doText,[])
link(Text,11924093:Text,[])
}
Add(Edit,11924093,175,112)
{
Left=15
Top=10
Width=210
Text="text nu text"
}
Add(Edit,4426133,224,161)
{
Left=15
Top=60
Width=210
Text=""
}
Add(Button,14506533,119,161)
{
Left=95
Top=35
TabOrder=-1
link(onClick,15227485:doMultiReplace,[])
}

Остальные символы замены сам вводи, если надо.

Редактировалось 2 раз(а), последний 2019-10-17 14:34:26
карма: 22

0
Ответов: 92
Рейтинг: 1
#5: 2019-10-17 14:38:08 ЛС | профиль | цитата
nesco писал(а):
Чисто для примера
Схема
Остальные символы замены сам вводи, если надо.

Спасибо, этот вариант мне известен. Скорее всего так и придется делать.
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#6: 2019-10-17 14:38:58 ЛС | профиль | цитата
Есть еще один вариант, сейчас попробую нарисовать. Я так понимаю, что без 'x' десятичное значение, а с 'x' -- шестнадцатеричное, это так?

Редактировалось 1 раз(а), последний 2019-10-17 14:41:16
карма: 22

0
Ответов: 92
Рейтинг: 1
#7: 2019-10-17 14:44:16 ЛС | профиль | цитата
nesco писал(а):
Есть еще один вариант, сейчас попробую нарисовать. Я так понимаю, что без 'x' десятичное значение, а с 'x' -- шестнадцатеричное, это так?

Да

Редактировалось 2 раз(а), последний 2019-10-17 15:04:50
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#8: 2019-10-17 15:24:08 ЛС | профиль | цитата
На тебе схему с автоматической генерацией списка замен
Схема


Add(MainForm,11144789,49,133)
{
Width=307
}
Add(MultiReplace,15227485,644,350)
{
EndSymbol=","
link(onResult,11101534:doAdd,[])
link(Text,4914785:Var3,[(650,341)(692,341)(692,180)])
link(ReplaceList,9120139:Text,[])
}
Add(Button,14506533,49,182)
{
Left=110
Top=95
TabOrder=-1
link(onClick,11246958:doEvent1,[])
}
Add(MultiBlockFind,16468537,161,196)
{
TagList="{**s}\r\n &# {**x} ;\r\n{**e}"
link(Text,4914785:Var2,[])
link(onResult1,2374475:doLoad,[])
}
Add(Hub,11246958,105,182)
{
OutCount=4
link(onEvent1,9120139:doClear,[(634,188)(634,307)])
link(onEvent2,2374475:doClear,[(151,195)(151,237)(200,237)(200,209)])
link(onEvent3,16468537:doMultiBlockFind,[])
link(onEvent4,9905251:doFilter,[(144,209)(144,258)])
}
Add(MT_Array,2374475,224,196)
{
}
Add(MultiStrData,10671148,371,252)
{
Char="x"
link(onPart1,13888328:doCase,[])
link(onPart2,5366679:doCase,[(424,265)(424,300)])
}
Add(StrCat,4075826,322,252)
{
Str2="x"
link(onStrCat,10671148:doSplit,[])
}
Add(Case,13888328,434,252)
{
Value=String()
link(onNextCase,14434772:doWork1,[(529,258)])
}
Add(Case,5366679,434,294)
{
Value=String()
link(onNextCase,15112960:doConvert,[])
}
Add(Convertor,15112960,483,294)
{
Mode=5
link(onResult,14434772:doWork2,[])
}
Add(Convertor,13196400,546,294)
{
Mode=4
link(onResult,14846422:doString,[])
}
Add(HubEx,14434772,525,294)
{
link(onEvent,13196400:doConvert,[])
}
Add(StrList,9120139,651,294)
{
}
Add(GetDataEx,4914785,161,175)
{
link(Data,949554:Text,[])
}
Add(FormatStr,14846422,595,294)
{
Mask="&#%1; = %2,"
link(onFString,9120139:doAdd,[])
link(Str1,666574:Value,[(601,285)(587,285)(587,334)(286,334)])
}
Add(ArrayFilterRepeats,9905251,224,252)
{
link(onFilter,666574:doValue,[])
link(onEndFilter,15227485:doMultiReplace,[(270,265)(270,356)])
link(Array,2374475:Array,[])
}
Add(Memory,666574,280,252)
{
link(onData,4075826:doStrCat,[])
}
Add(Memo,949554,161,119)
{
Left=15
Top=10
Width=255
Strings=#22:text nu text|21:CareFY|27:bigpond|
ScrollBars=2
}
Add(Memo,11101534,705,350)
{
Left=15
Top=120
Width=255
ScrollBars=2
}
карма: 22

0
Ответов: 92
Рейтинг: 1
#9: 2019-10-17 15:26:41 ЛС | профиль | цитата
nesco писал(а):
На тебе схему с автоматической генерацией списка замен

nesco, Спасибо Вам огромное, очень выручили.
карма: 0

0
Ответов: 8887
Рейтинг: 823
#10: 2019-10-17 20:30:17 ЛС | профиль | цитата
Vandjer, список замен вынес в текстовой файл (с разделителем "ё" ), чтобы в будущем можно было изменить или добавить. https://forum.hiasm.com/getfile/38757
карма: 19

1
Голосовали:Joiner
Ответов: 92
Рейтинг: 1
#11: 2019-10-17 21:14:32 ЛС | профиль | цитата
Леонид, Спасибо!
карма: 0

0
Ответов: 207
Рейтинг: 14
#12: 2020-03-31 01:21:06 ЛС | профиль | цитата
Vandjer писал(а):
Браузер конвертирует без проблем. Как достать этот текст


Еще одно решение
Add(MainForm,2953706,112,168)
{
link(onCreate,14883812:doEvent1,[])
}
Add(ComboBox,1264131,84,238)
{
Left=10
Top=5
Width=140
Height=21
Strings=#22:text nu text|21:CareFY|27:bigpond|
DataType=1
link(onClick,9359466:doEvent1,[])
}
Add(Hub,2104080,308,252)
{
link(onEvent1,20680:doSend,[])
link(onEvent2,20680:doCloseAll,[])
}
Add(Label,9117561,448,119)
{
Left=160
Top=150
Width=188
Height=99
Font=[MS Sans Serif,12,1,0,1]
}
Add(TCP_Server,20680,348,238)
{
Port=2604
Point(onServerConnect)
Point(onServerDisconnect)
Point(doCloseAll)
}
Add(WebBrowser,5570028,315,119)
{
Left=155
Top=5
Width=220
URL=""
Silent=0
Point(doFromText)
link(onNavigate,9874013:doSearch,[])
link(URL,338190:Value,[])
}
Add(FormatStr,13998627,259,252)
{
Mask="HTTP/1.1 200 OK\r\nX-UA-Compatible: IE=Edge\r\n\r\n%1"
link(onFString,2104080:doEvent1,[])
}
Add(BlockFind,9874013,392,119)
{
IncludeBlock=1
StartBlock="<BODY>"
EndBlock="</BODY>"
link(onSearch,9117561:doText,[])
link(Text,5570028:Page,[(398,109)(369,109)(369,169)(328,169)])
}
Add(Hub,9359466,133,245)
{
link(onEvent1,3162444:In,[(151,251)(151,237)])
link(onEvent2,13998627:doString,[])
}
Add(Memory,338190,315,63)
{
Default=String(http://localhost:2604/)
}
Add(Timer,11152878,252,119)
{
Interval=0
Enable=1
AutoStop=1
link(onTimer,5570028:doNavigate,[])
}
Add(Hub,14883812,161,182)
{
link(onEvent1,20680:doOpen,[(277,188)(277,244)])
link(onEvent2,15642676:doWork3,[(214,195)])
}
Add(HubEx,15642676,210,119)
{
link(onEvent,11152878:doTimer,[])
}
Add(LineBreak,3047511,154,119)
{
link(Out,15642676:doWork2,[])
Primary=[3162444,7,112]
}


Редактировалось 1 раз(а), последний 2020-03-31 01:22:41
карма: 2

0
Ответов: 9906
Рейтинг: 351
#13: 2020-03-31 18:20:21 ЛС | профиль | цитата
nesco писал(а):
На тебе схему с автоматической генерацией списка замен

Ну вы блин даете
Add(BlockFind,1766094,140,98)
{
Delete=0
StartBlock="&#"
EndBlock=";"
Point(doReplaceStr)
link(onSearch,11948928:doDelete,[])
link(onEndSearch,11101534:doAdd,[(186,111)(186,48)])
link(Text,949554:Text,[])
}
Add(MainForm,11144789,77,42)
{
Width=307
}
Add(Button,14506533,77,98)
{
Left=110
Top=95
TabOrder=-1
link(onClick,1766094:doSearch,[])
}
Add(Memo,949554,140,42)
{
Left=15
Top=10
Width=255
Strings=#22:text &#110;&#x75; text|21:C&#x61;r&#x65;&#x46;Y|27:b&#105;&#x67;p&#x6f;n&#100;|
ScrollBars=2
}
Add(Memo,11101534,203,42)
{
Left=15
Top=120
Width=255
ScrollBars=2
}
Add(Delete,11948928,203,98)
{
Count=2
link(onDelete,2339171:doCompare,[])
}
Add(Delete,3467405,301,105)
{
Count=1
link(onDelete,15112960:doConvert,[])
}
Add(Convertor,15112960,350,105)
{
Mode=5
link(onResult,14803713:doWork2,[])
}
Add(Convertor,13196400,406,105)
{
Mode=4
link(onResult,1766094:doReplaceStr,[(445,111)(445,146)(130,146)(130,111)])
}
Add(StrMask,2339171,252,98)
{
Mask="x*;"
link(onFalse,14803713:doWork1,[(396,104)])
link(onTrue,3467405:doDelete,[])
}
Add(HubEx,14803713,392,105)
{
link(onEvent,13196400:doConvert,[])
}
Проще надо быть. Проще........

Редактировалось 3 раз(а), последний 2020-03-31 20:00:52
карма: 9

2
Голосовали:Tad, Joiner
Разработчик
Ответов: 26061
Рейтинг: 2120
#14: 2020-03-31 22:27:54 ЛС | профиль | цитата
Galkov писал(а):
Ну вы блин даете

Ну вы, блин, вспомнили
карма: 22

0
Ответов: 9906
Рейтинг: 351
#15: 2020-04-01 08:24:05 ЛС | профиль | цитата
Это я нечаянно

Смотрю -- схема. Дай-ка, думаю себе -- присмотрюсь.
Присмотрелся, и удивился настолько, что дату даже и не заметил
карма: 9

0
15
Сообщение
...
Прикрепленные файлы
(файлы не залиты)