Вверх ↑
Этот топик читают: Гость
Ответов: 23
Рейтинг: 1
#1: 2018-02-12 21:12:09 ЛС | профиль | цитата
Всем привет, подскажите пожалуйста как можно адекватно работать с данными в формате json, я не говорю про разбор и так далее, очень нужно хотя бы декодировать кириллицу вида \u0420\u0435\u0441\u0442\u0430\u0432\u0440\u0430\u0446\u0438\u044f
Перерыл весь форум, решений не нашел, пока у меня два варианта это, заменять по символам или как то прикручивать js и через него декодировать.
Подсказали это Юникод вопрос закрыт

Add(MultiElementEx,12073324,406,322)
{
@Hint=#27:Decoder Unicod (\uXXXX) 1.3|
@Color=11184810
}
BEGIN_SDK
Add(EditMultiEx,7291704,21,21)
{
WorkCount=#36:onDecode=Декодировать входные данные|
EventCount=#42:onResult=Выдаёт результат операции в поток|
DataCount=#39:Text=Определяет текст для декодирования|
Width=1077
Height=305
link(onDecode,1138751:doEvent1,[(47,27)(47,102)])
}
Add(Str_Enum,1905308,140,110)
{
Delimiter=""
link(onEnum,7328343:doCase,[])
link(onEndEnum,2341893:In,[])
link(String,7291704:Text,[(146,66)(27,66)])
}
Add(IndexToChanel,3639663,305,110)
{
Point(Data)
Point(Index)
link(onEvent1,7018223:doWork2,[])
link(onEvent2,5006024:doCase,[])
link(Data,9845510:getVar,[])
link(Index,10490059:Value,[])
}
Add(CharArray,2661129,947,42)
{
link(onGetStr,10477837:doEvent1,[])
}
Add(ArrayRW,13770070,947,96)
{
link(Array,2661129:Array,[])
}
Add(Case,7328343,235,110)
{
Value=String(\)
DataOnTrue=Integer(1)
link(onNextCase,3639663:doEvent,[])
link(onTrue,11623204:doWork3,[(285,123)])
}
Add(Case,5006024,351,117)
{
Value=String(u)
DataOnTrue=Integer(1)
link(onNextCase,16079249:doEvent,[])
link(onTrue,1686965:doValue,[(401,130)(401,63)])
}
Add(Memory,10490059,312,50)
{
Default=Integer(0)
}
Add(Memory,1686965,427,57)
{
Default=Integer(0)
}
Add(Hub,14470588,858,117)
{
OutCount=3
link(onEvent1,11623204:doWork1,[(882,123)(882,41)(285,41)])
link(onEvent2,11100288:doData,[])
link(onEvent3,5759759:doWork2,[])
}
Add(HubEx,11623204,281,50)
{
link(onEvent,10490059:doValue,[])
}
Add(DoData,11100288,889,124)
{
Data=String(\)
link(onEventData,2376014:doWork2,[])
}
Add(HubEx,7018223,929,110)
{
link(onEvent,13770070:doAdd,[])
}
Add(HubEx,2376014,929,124)
{
Angle=3
link(onEvent,7018223:doWork3,[])
}
Add(IndexToChanel,16079249,427,117)
{
Point(Index)
link(onEvent1,14470588:doEvent1,[])
link(onEvent2,6602952:doEvent1,[(467,130)(467,137)])
link(Index,1686965:Value,[])
}
Add(Counter,3591153,504,171)
{
Max=3
Default=-1
link(onNext,13235648:doCase,[])
}
Add(Hub,6602952,474,131)
{
link(onEvent1,14656065:doNext,[])
link(onEvent2,3591153:doNext,[(496,144)(496,177)])
}
Add(Case,13235648,549,171)
{
Value=Integer(3)
DataOnTrue=Integer(0)
link(onTrue,1266722:doEvent1,[])
}
Add(IndexToChanel,10872657,585,131)
{
Count=4
Point(Data)
link(onEvent1,7605540:doValue,[(708,137)(708,130)])
link(onEvent2,2888098:doValue,[(708,144)(708,166)])
link(onEvent3,6472466:doValue,[(697,151)(697,179)])
link(onEvent4,15047183:doStrCat,[(684,158)(684,224)])
link(Data,8629829:getVar,[])
}
Add(Counter,14656065,537,131)
{
Max=3
Default=-1
link(onNext,10872657:doEvent,[])
}
Add(Memory,2888098,820,160)
{
}
Add(Memory,7605540,799,124)
{
}
Add(Memory,6472466,750,173)
{
}
Add(StrCat,13303406,799,218)
{
link(Str1,7605540:Value,[])
link(Str2,2888098:Value,[(812,205)(826,205)])
}
Add(StrCat,15047183,750,218)
{
link(onStrCat,13303406:doStrCat,[])
link(Str1,6472466:Value,[])
}
Add(StrCat,16311383,777,267)
{
link(onStrCat,7643679:doConvert,[])
link(Str1,15047183:Result,[(783,259)(756,259)])
link(Str2,13303406:Result,[(790,259)(805,259)])
}
Add(LineBreakEx,1817374,209,57)
{
Caption="def"
Type=1
link(OnEvent,15337042:doEvent1,[])
}
Add(Hub,15337042,257,57)
{
link(onEvent1,10490059:doClear,[])
link(onEvent2,1686965:doClear,[])
}
Add(LineBreakEx,1962425,625,192)
{
Caption="def"
}
Add(LineBreakEx,6577383,147,153)
{
Caption="s"
Type=3
link(_Data,1905308:Part,[])
}
Add(LineBreakEx,9845510,305,86)
{
Caption="s"
Type=2
}
Add(Hub,1266722,593,178)
{
link(onEvent1,16311383:doStrCat,[(674,184)(674,273)])
link(onEvent2,1962425:doWork,[(616,191)(616,198)])
}
Add(LineBreakEx,8629829,585,95)
{
Caption="s"
Type=2
}
Add(StreamConvertor,7643679,829,267)
{
Mode=3
link(onResult,12362191:doCharset,[])
}
Add(Charset,12362191,873,267)
{
Type=9
link(onCharset,5759759:doWork3,[(933,273)])
}
Add(LineBreak,8066680,896,42)
{
Caption="end"
link(Out,2661129:doGetStr,[(938,48)(938,55)])
Primary=[2341893,-707,75]
}
Add(HubEx,5759759,929,131)
{
Angle=3
link(onEvent,2376014:doWork3,[])
}
Add(Hub,1138751,66,96)
{
OutCount=3
link(onEvent1,16645260:doWork,[(89,102)(89,94)])
link(onEvent2,7617810:doWork,[])
link(onEvent3,1905308:doEnum,[])
}
Add(LineBreakEx,16645260,98,88)
{
Caption="def"
}
Add(LineBreakEx,8140191,891,64)
{
Caption="sclr"
Type=1
link(OnEvent,2661129:doClear,[(937,70)(937,62)])
}
Add(LineBreakEx,7617810,97,103)
{
Caption="sclr"
}
Add(Hub,10477837,992,49)
{
link(onEvent1,6009960:doWork,[(1016,55)(1016,41)])
link(onEvent2,7291704:onResult,[(1017,62)(1017,71)(1081,71)(1081,27)])
}
Add(LineBreakEx,6009960,1026,35)
{
Caption="sclr"
}
Add(Icon,5086957,42,280)
{
@Hint=#5:#main|
Icon=[ZIP360B000078DAED54310EC2300C3412132C9D906062644562CA4FF84066BE80E0019598F848676FAC944E280F6004D405A69004449BC48156820151576ED4AB958BEBBB02B4D4351880BA0F61D805E801C048A5826002775CC7A5034DFC7C6C6429B94AE6635E9DBCD7195CD838C9218A7D2C8CD9CF66D56788EDF39995D97888E71DA6F7307BB93CC903677EEF643FEC0D8F08F0D4E8879A8F87C581F970623EA2D1FB4F7BD5F56642E884D3BA34FA7EE1514F73DCF14C1CD6ADD19878ED8F502F21BFBA3CE6FCC2E9B92A8FA8C663BC2A0BBE6FF03C67C8BFCC23FCEFF7711EE29F529B87D27252609466ADF73574DDC4BF859412CB796A47789864789C211E66199E9611BA3597718AD7D51AF3AC8FF96E8AF956E71EF3748FE7C5DCABD779037BB438B7]
}
END_SDK


Редактировалось 4 раз(а), последний 2018-02-12 22:06:55
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 2059
Рейтинг: 131
#2: 2018-02-12 22:15:44 ЛС | профиль | цитата
Первое впечатление, что UNI ты скопировал в ansi.
Не дочмтал...
__________________________________
Чё-то не копируется схема у меня.
Чё с каждой болячкой бежишь - волки, волки, что-ли? -дальше по сценарию.
Не привык задачи решать ты, а это совсем не здорово.

Редактировалось 6 раз(а), последний 2018-02-12 22:39:22
карма: 6

0
Ответов: 8886
Рейтинг: 823
#3: 2018-02-12 22:57:00 ЛС | профиль | цитата
denis_bardak, чуть полегче:
чуть


Add(MainForm,2953706,70,112)
{
Width=429
}
Add(Edit,14621716,161,112)
{
Left=5
Top=5
Width=400
Text="\u0420\u0435\u0441\u0442\u0430\u0432\u0440\u0430\u0446\u0438\u044f"
}
Add(InlineCode,12023673,301,168)
{
WorkPoints=#6:doTest|
EventPoints=#5:onRes|
VarPoints=#
DataPoints=#
Code=#15:unit HiAsmUnit;|13:// Author Tad|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|10: private|4: |9: public|4: |24: onRes : THI_Event;|51: PROCEDURE doTest(var _Data:TData; Index:Word);|0:|5: end;|0:|14:implementation|0:|29:PROCEDURE THiAsmClass.doTest;|13:var s:string;|5:BEGIN|21: s:=toString(_Data);|34: if s='\u0410' then s:= 'А' else|34: if s='\u0430' then s:= 'а' else|34: if s='\u0411' then s:= 'Б' else|34: if s='\u0431' then s:= 'б' else|34: if s='\u0412' then s:= 'В' else|34: if s='\u0432' then s:= 'в' else|34: if s='\u0413' then s:= 'Г' else|34: if s='\u0433' then s:= 'г' else|34: if s='\u0414' then s:= 'Д' else|34: if s='\u0434' then s:= 'д' else|34: if s='\u0415' then s:= 'Е' else|34: if s='\u0435' then s:= 'е' else|34: if s='\u0401' then s:= 'Ё' else|34: if s='\u0451' then s:= 'ё' else|34: if s='\u0416' then s:= 'Ж' else|34: if s='\u0436' then s:= 'ж' else|34: if s='\u0417' then s:= 'З' else|34: if s='\u0437' then s:= 'з' else|34: if s='\u0418' then s:= 'И' else|34: if s='\u0438' then s:= 'и' else|34: if s='\u0419' then s:= 'Й' else|34: if s='\u0439' then s:= 'й' else|34: if s='\u041a' then s:= 'К' else|34: if s='\u043a' then s:= 'к' else|34: if s='\u041b' then s:= 'Л' else|34: if s='\u043b' then s:= 'л' else|34: if s='\u041c' then s:= 'М' else|34: if s='\u043c' then s:= 'м' else|34: if s='\u041d' then s:= 'Н' else|34: if s='\u043d' then s:= 'н' else|34: if s='\u041e' then s:= 'О' else|34: if s='\u043e' then s:= 'о' else|34: if s='\u041f' then s:= 'П' else|34: if s='\u043f' then s:= 'п' else|34: if s='\u0420' then s:= 'Р' else|34: if s='\u0440' then s:= 'р' else|34: if s='\u0421' then s:= 'С' else|34: if s='\u0441' then s:= 'с' else|34: if s='\u0422' then s:= 'Т' else|34: if s='\u0442' then s:= 'т' else|34: if s='\u0423' then s:= 'У' else|34: if s='\u0443' then s:= 'у' else|34: if s='\u0424' then s:= 'Ф' else|34: if s='\u0444' then s:= 'ф' else|34: if s='\u0425' then s:= 'Х' else|34: if s='\u0445' then s:= 'х' else|34: if s='\u0426' then s:= 'Ц' else|34: if s='\u0446' then s:= 'ц' else|34: if s='\u0427' then s:= 'Ч' else|34: if s='\u0447' then s:= 'ч' else|34: if s='\u0428' then s:= 'Ш' else|34: if s='\u0448' then s:= 'ш' else|34: if s='\u0429' then s:= 'Щ' else|34: if s='\u0449' then s:= 'щ' else|34: if s='\u042a' then s:= 'Ъ' else|34: if s='\u044a' then s:= 'ъ' else|34: if s='\u042d' then s:= 'Ы' else|34: if s='\u044b' then s:= 'ы' else|34: if s='\u042c' then s:= 'Ь' else|34: if s='\u044c' then s:= 'ь' else|34: if s='\u042d' then s:= 'Э' else|34: if s='\u044d' then s:= 'э' else|34: if s='\u042e' then s:= 'Ю' else|34: if s='\u044e' then s:= 'ю' else|34: if s='\u042f' then s:= 'Я' else|31: if s='\u044f' then s:= 'я' ;|0:|23: _hi_onEvent(onRes,s);|4:END;|0:|0:|4:end.|
link(onRes,2841329:doStrCat,[])
}
Add(Str_Enum,5096056,203,168)
{
Delimiter="\"
link(onEnum,8849573:doStrCat,[])
link(onEndEnum,8577942:doData,[(242,181)(242,230)])
}
Add(Button,15316937,70,154)
{
Left=10
Top=35
link(onClick,13388865:doEvent1,[])
}
Add(StrCat,8849573,252,168)
{
Str1="\"
link(onStrCat,12023673:doTest,[])
}
Add(Hub,13388865,112,154)
{
OutCount=3
link(onEvent1,2841329:doClear,[(340,160)(340,181)])
link(onEvent2,3218203:doTrim,[(144,167)(144,174)])
link(onEvent3,14437037:doCharset,[(137,174)(137,272)])
}
Add(StrCat,2841329,357,168)
{
Point(doClear)
link(Str1,14457554:Var1,[(363,159)(349,159)(349,208)])
}
Add(DoData,8577942,357,224)
{
link(onEventData,2325268:doText,[])
link(Data,14457554:Var2,[])
}
Add(GetDataEx,14457554,357,203)
{
link(Data,2841329:Result,[])
}
Add(Label,2325268,406,224)
{
Left=90
Top=40
}
Add(Trim,3218203,161,168)
{
Char="\"
link(onTrim,5096056:doEnum,[])
link(Text,2827549:Var2,[])
}
Add(Charset,14437037,147,266)
{
Type=9
link(onCharset,12660930:doText,[])
link(Text,2827549:Var1,[(153,152)])
}
Add(GetDataEx,2827549,161,147)
{
link(Data,14621716:Text,[])
}
Add(Label,12660930,203,266)
{
Left=90
Top=65
}

карма: 19

0
Ответов: 2059
Рейтинг: 131
#4: 2018-02-12 23:31:08 ЛС | профиль | цитата
Леонид, добрый волшебник! (Добрый рассказчик Николай Николаевич Дроздов, сейчас расскажет жуткие истории про Life on Earth.)
Вот твою схему могу посмотреть, а вот другую, не получается.
карма: 6

0
Ответов: 43
Рейтинг: -2
#5: 2018-02-13 08:10:57 ЛС | профиль | цитата
во мне 2 литра вина и я в отпуске, что Вы пьёте или курите не знаю, но знаю точно что без всякого гемора это делается в vbs

Add(MainForm,2953706,63,49)
{
}
Add(VBJScript,6718598,203,112)
{
WorkPoints=#6:doWork|
EventPoints=#5:onRes|
Script=#19:Sub doWork(dt, idx)|25: sys.onRes UnEscape(dt)|35: 'sys.onRes Escape(dt) ' кодирует|7:End Sub|
link(onRes,2196790:doText,[])
}
Add(Button,4576679,56,112)
{
Left=35
Top=30
Data=String(\u0420\u0435\u0441\u0442\u0430\u0432\u0440\u0430\u0446\u0438\u044f)
link(onClick,12631624:doReplace,[])
}
Add(Edit,2196790,280,112)
{
Left=120
Top=30
Width=235
}
Add(Replace,12631624,126,112)
{
SubStr="\"
DestStr="%"
link(onReplace,6718598:doWork,[])
}


причём 100 раз на форуме это уже метелили
flint2 писал(а):
Леонид, добрый волшебник!

flint2, А то , причём не ленивый и умный
карма: -2

0
Ответов: 23
Рейтинг: 1
#6: 2018-02-13 14:33:17 ЛС | профиль | цитата
Леонид писал(а):
denis_bardak, чуть полегче:
чуть

спасибо большое)

flint2 писал(а):
Первое впечатление, что UNI ты скопировал в ansi.
Не дочмтал...
__________________________________
Чё-то не копируется схема у меня.
Чё с каждой болячкой бежишь - волки, волки, что-ли? -дальше по сценарию.
Не привык задачи решать ты, а это совсем не здорово.

Редактировалось 3 раз(а), последний 2018-02-12 22:25:15

флудераст
карма: 0

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