Вверх ↑
Этот топик читают: Гость
Ответов: 652
Рейтинг: 138
#1: 2023-08-06 19:30:35 ЛС | профиль | цитата
Способ передачи данных и объектов между программами с помощью VBJScript.
Сначала запустите первый скрипт, а потом второй.
https://forum.hiasm.com/getfile/39620

--- Добавлено в 2023-08-06 19:33:01

Старый, Добрый, "Ламповый" MailSlot.
Передача на MailSlot_Server разными способами.
https://forum.hiasm.com/getfile/39621

--- Добавлено в 2023-08-06 19:34:59

Ковёр
Умножение строки на число (для windows10)
Add(MainForm,2953706,91,77)
{
Width=728
Height=483
Caption="Ковёр"
link(onCreate,10073478:doString,[])
}
Add(FormatStr,10073478,147,91)
{
Mask="\r\n 1..%2 | ForEach-Object {\r\n '_ \ \ \_/ __' * %1\r\n ' \ \ \___/ _' * %1\r\n '\ \ \_____/ ' * %1\r\n '/ / / ___ \_' * %1\r\n '_/ / / _ \__' * %1\r\n '__/ / / \___' * %1\r\n }"
link(onFString,15758195:doConsoleExec,[])
link(Str1,13589343:Text,[])
link(Str2,10687326:Text,[(160,68)(167,68)])
}
Add(WinExec,15758195,203,77)
{
FileName="powershell"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
link(onConsoleResult,10694890:doAdd,[])
}
Add(Memo,10694890,259,91)
{
Width=712
Height=444
Align=5
Font=[Lucida Console,8,0,0,204]
ScrollBars=3
}
Add(VisualStrings,13589343,147,21)
{
Lines=#1:8|
}
Add(VisualStrings,10687326,161,42)
{
Lines=#1:6|
}


--- Добавлено в 2023-08-06 19:37:52

Для руководителей и специалистов кадровой службы.

Add(Label,9948857,133,238)
{
Left=20
Top=25
Width=300
Height=65
Font=[MS Sans Serif,12,0,0,1]
Caption="Вы довольны зарплатой, которую\r\n платит Вам наша компания"
AutoSize=1
Alignment=2
}
Add(MainForm,2953706,189,168)
{
Width=358
Height=180
Caption=" Опрос"
BorderStyle=1
Position=1
}
Add(Button,551076,217,231)
{
Left=220
Top=90
Width=60
Height=25
Font=[MS Sans Serif,12,0,0,1]
Caption="Нет"
Point(doLeft)
Point(doTop)
Point(Width)
Point(Height)
Point(onMouseEnter)
Point(onMouseMove)
link(onMouseEnter,6156726:doEvent1,[])
link(onMouseMove,6156726:doEvent2,[])
}
Add(Random,10993960,294,238)
{
Max=300
link(onRandom,551076:doLeft,[(333,244)(333,223)(207,223)(207,237)])
}
Add(Random,7969335,343,245)
{
Max=130
link(onRandom,551076:doTop,[(382,251)(382,286)(207,286)(207,244)])
}
Add(Hub,6156726,266,238)
{
InCount=2
link(onEvent1,10993960:doRandom,[])
link(onEvent2,7969335:doRandom,[])
}
Add(Message,3134393,140,189)
{
Message="Мы не сомневались в этом и делаем всё для того, чтобы наши сотрудники были рады работать в нашей компании. "
Caption="Спасибо"
link(onMessage,2953706:doClose,[])
}
Add(Button,15596083,91,189)
{
Left=70
Top=90
Width=60
Height=25
Font=[MS Sans Serif,12,0,0,1]
Caption="Да"
DefaultBtn=0
Point(doLeft)
Point(doTop)
link(onClick,3134393:doMessage,[])
}


Редактировалось 4 раз(а), последний 2023-08-06 19:37:52
карма: 14

0
файлы: 2обмен данными и объектами между скриптами.zip [1.8KB] [141], mailslot_test.zip [2.6KB] [143]
vip
#1.1контекстная реклама от партнеров
Ответов: 652
Рейтинг: 138
#2: 2023-08-07 20:55:12 ЛС | профиль | цитата
Планировщик заданий. Создание, удаление и др..
Схема создаёт задание - показывать тестовое сообщение каждые 5 мин.

Add(MainForm,10111111,98,91)
{
Width=1023
}
Add(WinExec,1234677,287,196)
{
FileName="taskschd.msc"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
}
Add(Menu,260512,154,91)
{
Menu=#39:1. Запланировать событие "Напоминание" |36:2. Удаление запланированного события|38:3. Список всех запланированных событий|22:4. Запуск планировщика|
Point(onSelectNum)
link(onSelectNum,11455188:doEvent,[])
}
Add(IndexToChanel,11455188,210,98)
{
Count=4
link(onEvent1,895287:doString,[(263,104)(263,69)])
link(onEvent2,2494332:doString,[])
link(onEvent3,5503462:doString,[(277,118)(277,153)])
link(onEvent4,1234677:doShellExec,[(256,125)(256,209)])
}
Add(Memo,7467944,504,140)
{
Width=1007
Height=261
Align=5
Font=[Lucida Console,10,0,0,204]
ScrollBars=3
}
Add(Charset,13686885,448,140)
{
link(onCharset,7467944:doAdd,[])
}
Add(FormatStr,2494332,287,105)
{
Mask="/Delete /TN "Test Task" /F"
link(onFString,9936378:doWork2,[])
}
Add(WinExec,10368304,399,126)
{
FileName="SchTasks"
Mode=0
Action="runas"
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
link(onConsoleResult,13686885:doCharset,[])
}
Add(FormatStr,895287,287,63)
{
Mask="/Create /SC MINUTE /MO 5 /TN "Test Task" /TR "msg * Тестовое уведомление""
link(onFString,9936378:doWork1,[(340,69)])
}
Add(HubEx,9936378,336,105)
{
link(onEvent,13590992:doEvent1,[])
}
Add(FormatStr,5503462,287,147)
{
Mask="/Query"
link(onFString,9936378:doWork3,[(340,153)])
}
Add(Hub,13590992,357,105)
{
link(onEvent1,7467944:doClear,[(487,111)(487,153)])
link(onEvent2,10368304:doConsoleExec,[(389,118)(389,146)])
}

карма: 14

1
Голосовали:envoy_sky
Ответов: 652
Рейтинг: 138
#3: 2023-08-08 18:30:03 ЛС | профиль | цитата
Изменение масштаба экрана и текста.
Powershell

Add(Memo,15031198,378,63)
{
Left=550
Top=160
Align=5
Strings=#25:Установка маштаба экрана.|
ScrollBars=3
}
Add(MainForm,2953706,63,56)
{
Caption="Screen Scaling"
}
Add(ComboBox,6230396,119,56)
{
Left=15
Top=30
Width=130
Height=21
Align=2
Strings=#4:100%|5:125% |5:150% |5:175% |
Text=""
link(onClick,5006580:doString,[])
}
Add(FormatStr,5006580,189,63)
{
DataCount=1
Mask="$source = @’\r\n [DllImport("""user32.dll""", EntryPoint = """SystemParametersInfo""")]\r\n public static extern bool SystemParametersInfo(\r\n uint uiAction,\r\n uint uiParam,\r\n uint pvParam,\r\n uint fWinIni);\r\n‘@\r\n$apicall = Add-Type -MemberDefinition $source -Name WinAPICall -Namespace SystemParamInfo –PassThru\r\n$apicall::SystemParametersInfo(0x009F, %1, $null, 1)"
link(onFString,357619:doConsoleExec,[])
}
Add(WinExec,357619,245,49)
{
FileName="powershell"
Mode=0
Point(doConsoleExec)
Point(onConsoleResult)
Point(onConsoleError)
link(onConsoleResult,108940:doWork2,[])
link(onConsoleError,108940:doWork3,[(305,76)])
}
Add(Charset,14483954,322,63)
{
link(onCharset,15031198:doAdd,[])
}
Add(HubEx,108940,301,63)
{
link(onEvent,14483954:doCharset,[])
}

InlineCode

Add(MainForm,2953706,49,63)
{
Width=296
Height=147
}
Add(InlineCode,13133648,147,70)
{
WorkPoints=#7:doScale|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|21:uses kol,Share,Debug;|0:|4:type|28: THiAsmClass = class(TDebug)|7: public|47: procedure doScale(var dt:TData; idx:word);|5: end;|0:|73:function SystemParametersInfo(uiAction,uiParam:cardinal; pvParam:pointer;|39: fWinIni:cardinal) : cardinal; stdcall;|0:|14:implementation|0:|82:function SystemParametersInfo; external 'user32.dll' name 'SystemParametersInfoA';|0:|30:procedure THiAsmClass.doScale;|5:begin|51: SystemParametersInfo(159, ToInteger(dt), nil, 1);|4:end;|0:|4:end.|
}
Add(ComboBox,6230396,98,63)
{
Width=280
Height=21
Align=2
Strings=#4:100%|5:125% |5:150% |5:175% |
Text=""
link(onClick,13133648:doScale,[])
}
Add(Memo,15031198,91,126)
{
Top=21
Width=280
Height=87
Align=5
Strings=#25:Установка маштаба экрана.|
ScrollBars=3
}

Настройки масштаба установленные в системе.

Add(MainForm,2953706,70,105)
{
link(onCreate,14663730:doRead,[])
}
Add(Memo,12829330,287,77)
{
Left=550
Top=160
Align=5
ScrollBars=3
}
Add(Registry,14663730,126,119)
{
HKey=1
Key="Control Panel\Desktop"
Value="LogPixels"
DataType=0
link(onRead,9807490:doGetIndex,[])
}
Add(StrList,9807490,182,91)
{
Strings=#2:96|3:120|3:144|3:192|0:|
Point(doGetIndex)
Point(onGetIndex)
link(onGetIndex,11596985:doGetString,[])
}
Add(StrList,11596985,231,70)
{
Strings=#6:100 % |6:125 % |6:150 % |6:200 % |0:|
Point(doGetString)
Point(onGetString)
link(onGetString,12829330:doAdd,[])
}

Дожил до седин и только сегодня узнал, что команды ms-settings: можно запускать из WebBrowser.

Add(MainForm,2953706,21,105)
{
}
Add(WebBrowser,7714425,91,105)
{
Left=200
Top=180
Visible=1
URL="ms-settings:display"
}

Другие команды ms-settings можно посмотреть здесь - https://windowsnotes.ru/windows-10/komandy-ms-settings-dlya-bystrogo-dostupa-k-nastrojkam-windows-10/

Проверено на
- Windows 10 (x64)
- Hiasm v4.05 build 186 (delphi)
карма: 14

0
Ответов: 652
Рейтинг: 138
#4: 2023-08-09 13:23:31 ЛС | профиль | цитата
Возможно, кому-то понадобится. Создание HTA приложения из MTStrTbl.
https://forum.hiasm.com/getfile/39622
карма: 14

0
файлы: 1MTtbl to HTA.zip [6.4KB] [149]
Ответов: 8881
Рейтинг: 822
#5: 2023-08-09 15:48:36 ЛС | профиль | цитата
Gunta, MTStrTbl это творение nesco, самый большой код элемента в HiAsm
По масштабу -- у меня сейчас "отслоение сетчатки" с уменьшением чувствительности и большими искажениями. Использую масштаб в браузере и приложениях, где есть, а где нет экранную "лупу". Опробую и ваше, отпишусь позже
карма: 19

0
Ответов: 652
Рейтинг: 138
#6: 2023-08-09 18:49:27 ЛС | профиль | цитата
Леонид писал(а):
MTStrTbl это творение nesco, самый большой код элемента в HiAsm

Я это знаю и скажу больше, вся группа компонентов MTStrTbl мне очень нравится, и я часто использую их и по работе в том числе.
Вот пример работы с файлами CSV как с базой данных. Для доступа к данным в файле CSV используется Microsoft.Jet.OLEDB.4.0
https://forum.hiasm.com/getfile/39623
ЕСЛИ в файле CSV символ разделитель не запятая то нужно использовать файл schema.ini, который должен находится рядом с текстовым файлом (CSV). Все ссылки в схеме.

Редактировалось 1 раз(а), последний 2023-08-09 18:50:02
карма: 14

0
файлы: 1txt file by sql.zip [4KB] [134]
Ответов: 282
Рейтинг: 23
#7: 2023-08-10 11:49:28 ЛС | профиль | цитата
Gunta писал(а):
Дожил до седин и только сегодня узнал, что команды ms-settings: можно запускать из WebBrowser.

В системе андроид тоже очень много можно запустить из WebBrowser.
карма: 2
0
Ответов: 652
Рейтинг: 138
#8: 2023-08-12 07:21:49 ЛС | профиль | цитата
Запуск браузеров Google Chrome и Microsoft Edge (и других на основе Сhromium) в режиме киоск.
При первом запуске программы рядом в папке temp создаётся независимый профиль со всеми настройками и другими данными.
https://forum.hiasm.com/getfile/39624
Режим киоска может пригодиться, например, для запуска на корпоративном оборудовании динамического сайта-визитки компании, для организации в увеселительном заведении караоке, музыкального автомата, игр и прочих развлечений на базе веб-сервисов, в качестве веб-приложения ТВ-версии YouTube, какого-то онлайн-кинотеатра, соцсети, да любого сервиса. Также в рамках родительского контроля, чтобы дети имели доступ к ограниченным веб-ресурсам.
карма: 14

1
файлы: 1Chrome kiosk.zip [878B] [147]
Голосовали:Flapiotun
Ответов: 1258
Рейтинг: 47
#9: 2023-08-20 14:11:56 ЛС | профиль | цитата
Gunta, благодарю, не знал про HTA. Только в виде WebApps.

--- Добавлено в 2023-08-20 14:26:51

Все, похоже лимит на загрузку исчерпан - ничего не запгрузить, даже 115 Кб. Пишет отрицательный лимит в - 500 кб с лишним.. Интересно, только у меня так? Поэтому, вот Леонид, держи. Программа лупы, довольно удобная вышла. Это даже не лупа, а микроскоп какой-то) 3 года назад писал. Сам скоро буду использовать, зрение уже +2.5, не доставляет удовольствия работать за компом как раньше...
https://disk.yandex.ru/d/XCXhQoAB89l8Hg

Редактировалось 3 раз(а), последний 2023-08-20 14:29:05
карма: 3
Hiasm + Flowstone + CopperCube + GoDot + JS
0
Ответов: 652
Рейтинг: 138
#10: 2023-08-30 06:30:49 ЛС | профиль | цитата
Пример парсера JSON в таблицу MTStrTbl с помощью SQLite
Add(MainForm,2953706,21,84)
{
Width=649
Point(onClose)
link(onCreate,7361690:doOpen,[])
link(onClose,7361690:doClose,[])
}
Add(DS_SQLite,7361690,70,98)
{
Name="js"
FileName=":memory:"
link(onOpen,16774519:doString,[])
}
Add(DSC_Query,7586605,224,98)
{
SQL="select\r\n json_extract(value, '$.ID') as ID\r\n ,json_extract(value, '$.NumCode') as NumCode\r\n ,json_extract(value, '$.CharCode') as CharCode\r\n ,json_extract(value, '$.Nominal') as Nominal\r\n ,json_extract(value, '$.Name') as Name\r\n ,json_extract(value, '$.Value') as Value\r\n ,json_extract(value, '$.Previous') as Previous\r\nfrom\r\n(select *\r\nfrom cbr, json_each(cbr.data, '$.Valute'))\r\n; "
DSManager="js"
link(onQuery,9610740:doAddRow,[])
link(onColumns,9610740:doAddCols,[])
}
Add(DSC_Exec,2918495,175,98)
{
DSManager="js"
link(onExec,7586605:doQuery,[])
}
Add(FormatStr,16774519,126,98)
{
DataCount=1
Mask="CREATE TABLE cbr (id INTEGER PRIMARY KEY, data JSON);\r\n\r\nINSERT INTO cbr (id, data) VALUES (1, json('%1'));"
link(onFString,2918495:doExec,[])
link(Str1,7461844:Text,[])
}
Add(MTStrTbl,856637,21,35)
{
Width=633
Height=261
Align=5
Name="asd"
}
Add(MST_DB,9610740,280,98)
{
MSTControl="asd"
link(onChange,2466544:doColAction,[])
}
Add(MST_ColAction,2466544,329,98)
{
Action=9
Index=-2
MSTControl="asd"
}
Add(StrList,7461844,126,42)
{
Strings=#1:{|40: "Date": "2023-08-29T11:30:00+03:00",|48: "PreviousDate": "2023-08-26T11:30:00+03:00",|84: "PreviousURL": "\/\/www.cbr-xml-daily.ru\/archive\/2023\/08\/26\/daily_json.js",|45: "Timestamp": "2023-08-29T14:00:00+03:00",|15: "Valute": {|16: "AUD": {|27: "ID": "R01010",|29: "NumCode": "036",|30: "CharCode": "AUD",|25: "Nominal": 1,|43: "Name": "Австралийский доллар",|29: "Value": 61.3979,|31: "Previous": 60.7765|10: },|16: "AZN": {|28: "ID": "R01020A",|29: "NumCode": "944",|30: "CharCode": "AZN",|25: "Nominal": 1,|44: "Name": "Азербайджанский манат",|29: "Value": 56.1598,|31: "Previous": 55.7128|10: },|16: "GBP": {|27: "ID": "R01035",|29: "NumCode": "826",|30: "CharCode": "GBP",|25: "Nominal": 1,|63: "Name": "Фунт стерлингов Соединенного королевства",|30: "Value": 120.7526,|32: "Previous": 119.7914|10: },|16: "AMD": {|27: "ID": "R01060",|29: "NumCode": "051",|30: "CharCode": "AMD",|27: "Nominal": 100,|39: "Name": "Армянских драмов",|29: "Value": 24.7342,|30: "Previous": 24.538|10: },|16: "BYN": {|28: "ID": "R01090B",|29: "NumCode": "933",|30: "CharCode": "BYN",|25: "Nominal": 1,|40: "Name": "Белорусский рубль",|29: "Value": 29.8938,|31: "Previous": 29.8615|10: },|16: "BGN": {|27: "ID": "R01100",|29: "NumCode": "975",|30: "CharCode": "BGN",|25: "Nominal": 1,|37: "Name": "Болгарский лев",|29: "Value": 52.7585,|31: "Previous": 52.4922|10: },|16: "BRL": {|27: "ID": "R01115",|29: "NumCode": "986",|30: "CharCode": "BRL",|25: "Nominal": 1,|39: "Name": "Бразильский реал",|29: "Value": 19.5763,|29: "Previous": 19.43|10: },|16: "HUF": {|27: "ID": "R01135",|29: "NumCode": "348",|30: "CharCode": "HUF",|27: "Nominal": 100,|42: "Name": "Венгерских форинтов",|28: "Value": 26.923,|31: "Previous": 26.6771|10: },|16: "VND": {|27: "ID": "R01150",|29: "NumCode": "704",|30: "CharCode": "VND",|29: "Nominal": 10000,|41: "Name": "Вьетнамских донгов",|29: "Value": 39.8463,|31: "Previous": 39.5588|10: },|16: "HKD": {|27: "ID": "R01200",|29: "NumCode": "344",|30: "CharCode": "HKD",|25: "Nominal": 1,|41: "Name": "Гонконгский доллар",|29: "Value": 12.1915,|31: "Previous": 12.0975|10: },|16: "GEL": {|27: "ID": "R01210",|29: "NumCode": "981",|30: "CharCode": "GEL",|25: "Nominal": 1,|38: "Name": "Грузинский лари",|29: "Value": 36.3024,|31: "Previous": 35.8933|10: },|16: "DKK": {|27: "ID": "R01215",|29: "NumCode": "208",|30: "CharCode": "DKK",|25: "Nominal": 1,|36: "Name": "Датская крона",|29: "Value": 13.8435,|31: "Previous": 13.7736|10: },|16: "AED": {|27: "ID": "R01230",|29: "NumCode": "784",|30: "CharCode": "AED",|25: "Nominal": 1,|33: "Name": "Дирхам ОАЭ",|29: "Value": 25.9928,|31: "Previous": 25.7859|10: },|16: "USD": {|27: "ID": "R01235",|29: "NumCode": "840",|30: "CharCode": "USD",|25: "Nominal": 1,|33: "Name": "Доллар США",|29: "Value": 95.4717,|31: "Previous": 94.7117|10: },|16: "EUR": {|27: "ID": "R01239",|29: "NumCode": "978",|30: "CharCode": "EUR",|25: "Nominal": 1,|27: "Name": "Евро",|30: "Value": 103.2434,|32: "Previous": 102.2586|10: },|16: "EGP": {|27: "ID": "R01240",|29: "NumCode": "818",|30: "CharCode": "EGP",|26: "Nominal": 10,|40: "Name": "Египетских фунтов",|29: "Value": 30.9014,|31: "Previous": 30.6554|10: },|16: "INR": {|27: "ID": "R01270",|29: "NumCode": "356",|30: "CharCode": "INR",|26: "Nominal": 10,|38: "Name": "Индийских рупий",|29: "Value": 11.4868,|31: "Previous": 11.3986|10: },|16: "IDR": {|27: "ID": "R01280",|29: "NumCode": "360",|30: "CharCode": "IDR",|29: "Nominal": 10000,|42: "Name": "Индонезийских рупий",|28: "Value": 62.412,|31: "Previous": 62.0938|10: },|16: "KZT": {|27: "ID": "R01335",|29: "NumCode": "398",|30: "CharCode": "KZT",|27: "Nominal": 100,|42: "Name": "Казахстанских тенге",|29: "Value": 20.7471,|31: "Previous": 20.4986|10: },|16: "CAD": {|27: "ID": "R01350",|29: "NumCode": "124",|30: "CharCode": "CAD",|25: "Nominal": 1,|39: "Name": "Канадский доллар",|29: "Value": 70.1688,|31: "Previous": 69.8206|10: },|16: "QAR": {|27: "ID": "R01355",|29: "NumCode": "634",|30: "CharCode": "QAR",|25: "Nominal": 1,|37: "Name": "Катарский риал",|29: "Value": 26.2285,|31: "Previous": 26.0197|10: },|16: "KGS": {|27: "ID": "R01370",|29: "NumCode": "417",|30: "CharCode": "KGS",|26: "Nominal": 10,|39: "Name": "Киргизских сомов",|29: "Value": 10.8185,|31: "Previous": 10.7359|10: },|16: "CNY": {|27: "ID": "R01375",|29: "NumCode": "156",|30: "CharCode": "CNY",|25: "Nominal": 1,|37: "Name": "Китайский юань",|28: "Value": 13.055,|30: "Previous": 12.972|10: },|16: "MDL": {|27: "ID": "R01500",|29: "NumCode": "498",|30: "CharCode": "MDL",|26: "Nominal": 10,|38: "Name": "Молдавских леев",|29: "Value": 53.5368,|30: "Previous": 53.055|10: },|16: "NZD": {|27: "ID": "R01530",|29: "NumCode": "554",|30: "CharCode": "NZD",|25: "Nominal": 1,|44: "Name": "Новозеландский доллар",|29: "Value": 56.4906,|31: "Previous": 56.0504|10: },|16: "NOK": {|27: "ID": "R01535",|29: "NumCode": "578",|30: "CharCode": "NOK",|26: "Nominal": 10,|38: "Name": "Норвежских крон",|29: "Value": 89.1534,|31: "Previous": 88.8819|10: },|16: "PLN": {|27: "ID": "R01565",|29: "NumCode": "985",|30: "CharCode": "PLN",|25: "Nominal": 1,|38: "Name": "Польский злотый",|29: "Value": 23.0619,|30: "Previous": 22.926|10: },|16: "RON": {|28: "ID": "R01585F",|29: "NumCode": "946",|30: "CharCode": "RON",|25: "Nominal": 1,|36: "Name": "Румынский лей",|29: "Value": 20.9006,|31: "Previous": 20.6939|10: },|16: "XDR": {|27: "ID": "R01589",|29: "NumCode": "960",|30: "CharCode": "XDR",|25: "Nominal": 1,|60: "Name": "СДР (специальные права заимствования)",|30: "Value": 126.6757,|32: "Previous": 125.9552|10: },|16: "SGD": {|27: "ID": "R01625",|29: "NumCode": "702",|30: "CharCode": "SGD",|25: "Nominal": 1,|42: "Name": "Сингапурский доллар",|29: "Value": 70.4172,|31: "Previous": 69.7743|10: },|16: "TJS": {|27: "ID": "R01670",|29: "NumCode": "972",|30: "CharCode": "TJS",|26: "Nominal": 10,|40: "Name": "Таджикских сомони",|29: "Value": 87.0989,|31: "Previous": 86.4079|10: },|16: "THB": {|27: "ID": "R01675",|29: "NumCode": "764",|30: "CharCode": "THB",|26: "Nominal": 10,|40: "Name": "Таиландских батов",|29: "Value": 27.1426,|31: "Previous": 27.0022|10: },|16: "TRY": {|28: "ID": "R01700J",|29: "NumCode": "949",|30: "CharCode": "TRY",|26: "Nominal": 10,|35: "Name": "Турецких лир",|29: "Value": 36.1227,|31: "Previous": 34.9256|10: },|16: "TMT": {|28: "ID": "R01710A",|29: "NumCode": "934",|30: "CharCode": "TMT",|25: "Nominal": 1,|46: "Name": "Новый туркменский манат",|29: "Value": 27.2776,|31: "Previous": 27.0605|10: },|16: "UZS": {|27: "ID": "R01717",|29: "NumCode": "860",|30: "CharCode": "UZS",|29: "Nominal": 10000,|38: "Name": "Узбекских сумов",|29: "Value": 79.0977,|31: "Previous": 78.6053|10: },|16: "UAH": {|27: "ID": "R01720",|29: "NumCode": "980",|30: "CharCode": "UAH",|26: "Nominal": 10,|40: "Name": "Украинских гривен",|29: "Value": 25.8393,|31: "Previous": 25.6518|10: },|16: "CZK": {|27: "ID": "R01760",|29: "NumCode": "203",|30: "CharCode": "CZK",|26: "Nominal": 10,|35: "Name": "Чешских крон",|29: "Value": 42.7683,|31: "Previous": 42.5403|10: },|16: "SEK": {|27: "ID": "R01770",|29: "NumCode": "752",|30: "CharCode": "SEK",|26: "Nominal": 10,|36: "Name": "Шведских крон",|29: "Value": 86.5776,|30: "Previous": 85.911|10: },|16: "CHF": {|27: "ID": "R01775",|29: "NumCode": "756",|30: "CharCode": "CHF",|25: "Nominal": 1,|40: "Name": "Швейцарский франк",|30: "Value": 107.9752,|32: "Previous": 106.9464|10: },|16: "RSD": {|28: "ID": "R01805F",|29: "NumCode": "941",|30: "CharCode": "RSD",|27: "Nominal": 100,|39: "Name": "Сербских динаров",|29: "Value": 88.0414,|31: "Previous": 87.1011|10: },|16: "ZAR": {|27: "ID": "R01810",|29: "NumCode": "710",|30: "CharCode": "ZAR",|26: "Nominal": 10,|45: "Name": "Южноафриканских рэндов",|29: "Value": 51.0609,|31: "Previous": 50.7663|10: },|16: "KRW": {|27: "ID": "R01815",|29: "NumCode": "410",|30: "CharCode": "KRW",|28: "Nominal": 1000,|43: "Name": "Вон Республики Корея",|29: "Value": 72.1412,|31: "Previous": 71.4697|10: },|16: "JPY": {|27: "ID": "R01820",|29: "NumCode": "392",|30: "CharCode": "JPY",|27: "Nominal": 100,|35: "Name": "Японских иен",|29: "Value": 65.1728,|31: "Previous": 64.8266|9: }|5: }|1:}|
}

Пример парсера JSON в кортеж (tree) TreeViewTrain с помощью SQLite
Add(MainForm,2953706,28,84)
{
Width=649
Point(onClose)
link(onCreate,7361690:doOpen,[])
link(onClose,7361690:doClose,[])
}
Add(DS_SQLite,7361690,77,98)
{
Name="js"
FileName=":memory:"
link(onOpen,16774519:doString,[])
}
Add(DSC_Query,7586605,224,98)
{
SQL="select *, key || ' : ' || value\r\nfrom cbr, json_tree(cbr.data, '$')\r\n; "
DSManager="js"
link(onQuery,9833059:doAddNode,[])
}
Add(DSC_Exec,2918495,175,98)
{
DSManager="js"
link(onExec,7586605:doQuery,[])
}
Add(FormatStr,16774519,126,98)
{
DataCount=1
Mask="CREATE TABLE cbr (id INTEGER PRIMARY KEY, data JSON);\r\n\r\nINSERT INTO cbr (id, data) VALUES (1, json('%1'));"
link(onFString,2918495:doExec,[])
link(Str1,7461844:Text,[])
}
Add(StrList,7461844,126,42)
{
Strings=#1:{|40: "Date": "2023-08-29T11:30:00+03:00",|48: "PreviousDate": "2023-08-26T11:30:00+03:00",|84: "PreviousURL": "\/\/www.cbr-xml-daily.ru\/archive\/2023\/08\/26\/daily_json.js",|45: "Timestamp": "2023-08-29T14:00:00+03:00",|15: "Valute": {|16: "AUD": {|27: "ID": "R01010",|29: "NumCode": "036",|30: "CharCode": "AUD",|25: "Nominal": 1,|43: "Name": "Австралийский доллар",|29: "Value": 61.3979,|31: "Previous": 60.7765|10: },|16: "AZN": {|28: "ID": "R01020A",|29: "NumCode": "944",|30: "CharCode": "AZN",|25: "Nominal": 1,|44: "Name": "Азербайджанский манат",|29: "Value": 56.1598,|31: "Previous": 55.7128|10: },|16: "GBP": {|27: "ID": "R01035",|29: "NumCode": "826",|30: "CharCode": "GBP",|25: "Nominal": 1,|63: "Name": "Фунт стерлингов Соединенного королевства",|30: "Value": 120.7526,|32: "Previous": 119.7914|10: },|16: "AMD": {|27: "ID": "R01060",|29: "NumCode": "051",|30: "CharCode": "AMD",|27: "Nominal": 100,|39: "Name": "Армянских драмов",|29: "Value": 24.7342,|30: "Previous": 24.538|10: },|16: "BYN": {|28: "ID": "R01090B",|29: "NumCode": "933",|30: "CharCode": "BYN",|25: "Nominal": 1,|40: "Name": "Белорусский рубль",|29: "Value": 29.8938,|31: "Previous": 29.8615|10: },|16: "BGN": {|27: "ID": "R01100",|29: "NumCode": "975",|30: "CharCode": "BGN",|25: "Nominal": 1,|37: "Name": "Болгарский лев",|29: "Value": 52.7585,|31: "Previous": 52.4922|10: },|16: "BRL": {|27: "ID": "R01115",|29: "NumCode": "986",|30: "CharCode": "BRL",|25: "Nominal": 1,|39: "Name": "Бразильский реал",|29: "Value": 19.5763,|29: "Previous": 19.43|10: },|16: "HUF": {|27: "ID": "R01135",|29: "NumCode": "348",|30: "CharCode": "HUF",|27: "Nominal": 100,|42: "Name": "Венгерских форинтов",|28: "Value": 26.923,|31: "Previous": 26.6771|10: },|16: "VND": {|27: "ID": "R01150",|29: "NumCode": "704",|30: "CharCode": "VND",|29: "Nominal": 10000,|41: "Name": "Вьетнамских донгов",|29: "Value": 39.8463,|31: "Previous": 39.5588|10: },|16: "HKD": {|27: "ID": "R01200",|29: "NumCode": "344",|30: "CharCode": "HKD",|25: "Nominal": 1,|41: "Name": "Гонконгский доллар",|29: "Value": 12.1915,|31: "Previous": 12.0975|10: },|16: "GEL": {|27: "ID": "R01210",|29: "NumCode": "981",|30: "CharCode": "GEL",|25: "Nominal": 1,|38: "Name": "Грузинский лари",|29: "Value": 36.3024,|31: "Previous": 35.8933|10: },|16: "DKK": {|27: "ID": "R01215",|29: "NumCode": "208",|30: "CharCode": "DKK",|25: "Nominal": 1,|36: "Name": "Датская крона",|29: "Value": 13.8435,|31: "Previous": 13.7736|10: },|16: "AED": {|27: "ID": "R01230",|29: "NumCode": "784",|30: "CharCode": "AED",|25: "Nominal": 1,|33: "Name": "Дирхам ОАЭ",|29: "Value": 25.9928,|31: "Previous": 25.7859|10: },|16: "USD": {|27: "ID": "R01235",|29: "NumCode": "840",|30: "CharCode": "USD",|25: "Nominal": 1,|33: "Name": "Доллар США",|29: "Value": 95.4717,|31: "Previous": 94.7117|10: },|16: "EUR": {|27: "ID": "R01239",|29: "NumCode": "978",|30: "CharCode": "EUR",|25: "Nominal": 1,|27: "Name": "Евро",|30: "Value": 103.2434,|32: "Previous": 102.2586|10: },|16: "EGP": {|27: "ID": "R01240",|29: "NumCode": "818",|30: "CharCode": "EGP",|26: "Nominal": 10,|40: "Name": "Египетских фунтов",|29: "Value": 30.9014,|31: "Previous": 30.6554|10: },|16: "INR": {|27: "ID": "R01270",|29: "NumCode": "356",|30: "CharCode": "INR",|26: "Nominal": 10,|38: "Name": "Индийских рупий",|29: "Value": 11.4868,|31: "Previous": 11.3986|10: },|16: "IDR": {|27: "ID": "R01280",|29: "NumCode": "360",|30: "CharCode": "IDR",|29: "Nominal": 10000,|42: "Name": "Индонезийских рупий",|28: "Value": 62.412,|31: "Previous": 62.0938|10: },|16: "KZT": {|27: "ID": "R01335",|29: "NumCode": "398",|30: "CharCode": "KZT",|27: "Nominal": 100,|42: "Name": "Казахстанских тенге",|29: "Value": 20.7471,|31: "Previous": 20.4986|10: },|16: "CAD": {|27: "ID": "R01350",|29: "NumCode": "124",|30: "CharCode": "CAD",|25: "Nominal": 1,|39: "Name": "Канадский доллар",|29: "Value": 70.1688,|31: "Previous": 69.8206|10: },|16: "QAR": {|27: "ID": "R01355",|29: "NumCode": "634",|30: "CharCode": "QAR",|25: "Nominal": 1,|37: "Name": "Катарский риал",|29: "Value": 26.2285,|31: "Previous": 26.0197|10: },|16: "KGS": {|27: "ID": "R01370",|29: "NumCode": "417",|30: "CharCode": "KGS",|26: "Nominal": 10,|39: "Name": "Киргизских сомов",|29: "Value": 10.8185,|31: "Previous": 10.7359|10: },|16: "CNY": {|27: "ID": "R01375",|29: "NumCode": "156",|30: "CharCode": "CNY",|25: "Nominal": 1,|37: "Name": "Китайский юань",|28: "Value": 13.055,|30: "Previous": 12.972|10: },|16: "MDL": {|27: "ID": "R01500",|29: "NumCode": "498",|30: "CharCode": "MDL",|26: "Nominal": 10,|38: "Name": "Молдавских леев",|29: "Value": 53.5368,|30: "Previous": 53.055|10: },|16: "NZD": {|27: "ID": "R01530",|29: "NumCode": "554",|30: "CharCode": "NZD",|25: "Nominal": 1,|44: "Name": "Новозеландский доллар",|29: "Value": 56.4906,|31: "Previous": 56.0504|10: },|16: "NOK": {|27: "ID": "R01535",|29: "NumCode": "578",|30: "CharCode": "NOK",|26: "Nominal": 10,|38: "Name": "Норвежских крон",|29: "Value": 89.1534,|31: "Previous": 88.8819|10: },|16: "PLN": {|27: "ID": "R01565",|29: "NumCode": "985",|30: "CharCode": "PLN",|25: "Nominal": 1,|38: "Name": "Польский злотый",|29: "Value": 23.0619,|30: "Previous": 22.926|10: },|16: "RON": {|28: "ID": "R01585F",|29: "NumCode": "946",|30: "CharCode": "RON",|25: "Nominal": 1,|36: "Name": "Румынский лей",|29: "Value": 20.9006,|31: "Previous": 20.6939|10: },|16: "XDR": {|27: "ID": "R01589",|29: "NumCode": "960",|30: "CharCode": "XDR",|25: "Nominal": 1,|60: "Name": "СДР (специальные права заимствования)",|30: "Value": 126.6757,|32: "Previous": 125.9552|10: },|16: "SGD": {|27: "ID": "R01625",|29: "NumCode": "702",|30: "CharCode": "SGD",|25: "Nominal": 1,|42: "Name": "Сингапурский доллар",|29: "Value": 70.4172,|31: "Previous": 69.7743|10: },|16: "TJS": {|27: "ID": "R01670",|29: "NumCode": "972",|30: "CharCode": "TJS",|26: "Nominal": 10,|40: "Name": "Таджикских сомони",|29: "Value": 87.0989,|31: "Previous": 86.4079|10: },|16: "THB": {|27: "ID": "R01675",|29: "NumCode": "764",|30: "CharCode": "THB",|26: "Nominal": 10,|40: "Name": "Таиландских батов",|29: "Value": 27.1426,|31: "Previous": 27.0022|10: },|16: "TRY": {|28: "ID": "R01700J",|29: "NumCode": "949",|30: "CharCode": "TRY",|26: "Nominal": 10,|35: "Name": "Турецких лир",|29: "Value": 36.1227,|31: "Previous": 34.9256|10: },|16: "TMT": {|28: "ID": "R01710A",|29: "NumCode": "934",|30: "CharCode": "TMT",|25: "Nominal": 1,|46: "Name": "Новый туркменский манат",|29: "Value": 27.2776,|31: "Previous": 27.0605|10: },|16: "UZS": {|27: "ID": "R01717",|29: "NumCode": "860",|30: "CharCode": "UZS",|29: "Nominal": 10000,|38: "Name": "Узбекских сумов",|29: "Value": 79.0977,|31: "Previous": 78.6053|10: },|16: "UAH": {|27: "ID": "R01720",|29: "NumCode": "980",|30: "CharCode": "UAH",|26: "Nominal": 10,|40: "Name": "Украинских гривен",|29: "Value": 25.8393,|31: "Previous": 25.6518|10: },|16: "CZK": {|27: "ID": "R01760",|29: "NumCode": "203",|30: "CharCode": "CZK",|26: "Nominal": 10,|35: "Name": "Чешских крон",|29: "Value": 42.7683,|31: "Previous": 42.5403|10: },|16: "SEK": {|27: "ID": "R01770",|29: "NumCode": "752",|30: "CharCode": "SEK",|26: "Nominal": 10,|36: "Name": "Шведских крон",|29: "Value": 86.5776,|30: "Previous": 85.911|10: },|16: "CHF": {|27: "ID": "R01775",|29: "NumCode": "756",|30: "CharCode": "CHF",|25: "Nominal": 1,|40: "Name": "Швейцарский франк",|30: "Value": 107.9752,|32: "Previous": 106.9464|10: },|16: "RSD": {|28: "ID": "R01805F",|29: "NumCode": "941",|30: "CharCode": "RSD",|27: "Nominal": 100,|39: "Name": "Сербских динаров",|29: "Value": 88.0414,|31: "Previous": 87.1011|10: },|16: "ZAR": {|27: "ID": "R01810",|29: "NumCode": "710",|30: "CharCode": "ZAR",|26: "Nominal": 10,|45: "Name": "Южноафриканских рэндов",|29: "Value": 51.0609,|31: "Previous": 50.7663|10: },|16: "KRW": {|27: "ID": "R01815",|29: "NumCode": "410",|30: "CharCode": "KRW",|28: "Nominal": 1000,|43: "Name": "Вон Республики Корея",|29: "Value": 72.1412,|31: "Previous": 71.4697|10: },|16: "JPY": {|27: "ID": "R01820",|29: "NumCode": "392",|30: "CharCode": "JPY",|27: "Nominal": 100,|35: "Name": "Японских иен",|29: "Value": 65.1728,|31: "Previous": 64.8266|9: }|5: }|1:}|
}
Add(TreeViewTrain,13471299,322,91)
{
Left=140
Top=175
Align=5
Name="dsa"
CaptionIndex=10
ParentIDIndex=7
IDIndex=6
Point(doExpand)
}
Add(TVT_AddNode,9833059,273,98)
{
TreeView="dsa"
link(onAddNode,13471299:doExpand,[])
}