Автор | Сообщение |
|
| |
Пост N: 1865
Зарегистрирован: 20.02.11
|
|
Отправлено: 15.12.22 14:02. Заголовок: hb_hCaseMatch() в RU2151
не понимаю как заставить хеш массив игнорировать регистр ключа . С латиницей работает отлично, но если ключ в кириллице , то никакие hb_hCaseMatch() не помогают. Может что еще нужно прописать чтоб нормально игнорировался регистр ? func main() local aHash := hb_Hash() REQUEST HB_CODEPAGE_RU1251 hb_cdpSelect( "RU1251" ) hb_hCaseMatch( aHash, .F. ) hb_hSet( aHash, "тест", "тест пройден" ) ? "ключ в верхний регистр", if( hb_hHasKey(aHash, "ТЕСТ") , aHash["ТЕСТ"] , "ключ не найден" ) ? "ключ в нижний регистр", if( hb_hHasKey(aHash, "тест") , aHash["тест"] , "ключ не найден" ) wait return nil результат такой ключ в верхний регистр ключ не найден ключ в нижний регистр тест пройден Press any key to continue... ключ в нижний регистр тест пройден
|
|
|
Ответов - 27
, стр:
1
2
All
[только новые]
|
|
|
| |
Пост N: 1871
Зарегистрирован: 20.02.11
|
|
Отправлено: 20.12.22 21:28. Заголовок: SergKis пишет: json..
SergKis пишет: Ну только разбором строки т.к. hb_jsonDecode() не понимает json 5 и , соответственно, хеш массив не сформирует.
|
|
|
|
| постоянный участник
|
Пост N: 4190
Зарегистрирован: 17.02.12
|
|
Отправлено: 20.12.22 21:52. Заголовок: Haz пишет Ну только ..
Haz пишет цитата: | Ну только разбором строки |
| Это 2-ой случай, когда дают таблицы в json 5, правда не сложные и пока обхожусь вариантом привода к json j := SubS( J, At ("{", j) ) j := Left( J, RAt("}", j) ) j := left(j, 2)+'"'+subs(j, 3) j := StrTran(j, ":", '":') j := StrTran(j, ", ", ', "') j := StrTran(j, "'", '"') a := hb_jsonDecode(j) ? j ? "получена длинна массива:",len(a) получаем строку { "recid": 1, "fname": "John", "lname": "Doe", "email": "john@gmail.com", "profit": 2500, "sdate": "1/3/2012" } получена длинна массива: 6 Но если что то сложнее, то придется разбирать. Думал, что ты сталкивался, потому спросил.
|
|
|
|
| |
Пост N: 1872
Зарегистрирован: 20.02.11
|
|
Отправлено: 20.12.22 22:06. Заголовок: SergKis пишет: Дума..
SergKis пишет: цитата: | Думал, что ты сталкивался, потому спросил. |
|
Сергей, так тут вариантов нет, только строку парсить. Сталкивался, при разборе скачанного HTML . К сожалению поддержки 5 версии в харбуре нет, все только строковыми операциями и каждый раз индивидуально.
|
|
|
|
| |
Пост N: 1873
Зарегистрирован: 20.02.11
|
|
Отправлено: 21.12.22 09:04. Заголовок: SergKis пишет: Как ..
|
|
|
|
| постоянный участник
|
Пост N: 4191
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.12.22 12:49. Заголовок: Haz пишет глянь здес..
Haz пишет Спасибо Попробовал взять строку json (из примера по ссылке) через hb_jsonDecode() : {"Products": [{"Name": "Water", "Cost": 1.3}, {"Name": "Bread", "Cost": 4e-1}], "Users": [{"Name": "Arthur", "Comment": "Hello\" \\World"}]} работает и без ф-ии из ссылки j := hb_memoread(".\_c_.json") j := StrTran(j, '\"', "") j := StrTran(j, '\\', "") a := hb_jsonDecode(j) ? ".\_c_.json", a,"получена длинна массива:",len(a) for i:=1 to len(a) ? hb_hKeyAt(a,i),"=>",v:=hb_hValueAt(a,i),valtype(v) ? i, v for each m in v ? hb_valtoexp(m) next next ? результат Harbour MiniGUI Extended Edition 22.12.1 (32-bit) ANSI .\_c_.json HASH[2] получена длинна массива: 2 Products => ARRAY[2] A 1 ARRAY[2] {"Name"=>"Water", "Cost"=>1.3} {"Name"=>"Bread", "Cost"=>0.4} Users => ARRAY[1] A 2 ARRAY[1] {"Name"=>"Arthur", "Comment"=>"Hello World"}
|
|
|
|
| |
Пост N: 1874
Зарегистрирован: 20.02.11
|
|
Отправлено: 21.12.22 23:18. Заголовок: SergKis пишет: Попр..
SergKis пишет: цитата: | Попробовал взять строку json (из примера по ссылке) |
|
ну так там , в отличии от твоей строки есть ключ массива и все ключи в массиве с кавычками. Можно приводить строку к "стандартному" виду, а можно функцию аналог hb_jsondecode() под себя подправить. Все зависит от того как часто и что приходится делать. Как показал мой опыт, этот путь бесконечен. Только вроде все сделал, и тут json с левой резьбой...
|
|
|
|
| постоянный участник
|
Пост N: 4192
Зарегистрирован: 17.02.12
|
|
Отправлено: 21.12.22 23:47. Заголовок: Haz пишет Только вро..
Haz пишет цитата: | Только вроде все сделал, и тут json с левой резьбой... |
| На эту тему были мысли использовать php (к LetoDbf прикручивается) или js, но пока необходимости не было, json 5 -> json просто переводился.
|
|
|
Ответов - 27
, стр:
1
2
All
[только новые]
|
|