|
|
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
есть исходник для работы с моим железом, но он на JS помогите с данными разобраться объявлена переменная типа ByteString Код: javascript 1. далее в нее считываются данные, и получение значений этого массива происходит вот так: Код: javascript 1. 2. 3. 4. 5. что это за тип такой, что такому типу соответствует в Delphi и как с этим работать хоть примерно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2018, 07:33 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
что-то типа Код: pascal 1. 2. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2018, 12:40 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
edruzenkojson нет там данные приходят в бинарном виде, одной строкой если сделать целиком над строкой вот такое: Код: pascal 1. то на выходе получим длинную строку со вкраплениями нужного текста никаких json-овских скобок там нет типа вот такого: автор% _$ � 03_1 РОФ_2'Российская Федерация_) РОСТОВ-Н/Д_* � ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2018, 12:53 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
X11что-то типа Код: pascal 1. 2. ? тоже была гипотеза про массив байтов но хотел узнать у знающего ALL, может кто точно знает, без гипотез тип-то конкретно описан: ByteString ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2018, 13:10 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
genokто на выходе получим длинную строку со вкраплениями нужного текстапокажи не строку а её содержимое в hex ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2018, 14:05 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
джиэсделфиgenokто на выходе получим длинную строку со вкраплениями нужного текстапокажи не строку а её содержимое в hex автор5F 26 10 36 31 35 31 37 31 30 38 38 36 30 30 30 34 36 30 5F 21 12 420 2018 420 A0 420 452 420 45E 420 408 420 490 420 98 420 45C 420 452 5F 22 0C 420 201C 420 452 420 203A 420 98 420 45C 420 452 5F 23 14 420 45C 420 98 420 459 420 45B 420 203A 420 452 420 2022 420 2019 420 45C 420 452 5F 25 01 02 5F 24 04 13 08 19 201A 7F 30 33 5F 31 06 420 A0 420 45B 420 A4 5F 32 27 420 A0 420 455 421 403 421 403 420 451 420 2116 421 403 420 454 420 B0 421 40F 20 420 A4 420 B5 420 491 420 B5 421 402 420 B0 421 2020 420 451 421 40F 5F 29 12 420 A0 420 45B 420 40E 420 45E 420 45B 420 2019 2D 420 45C 2F 420 201D 5F 2A 04 452 00 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2018, 14:35 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
автор 5F 26 10 36 31 35 31 37 31 30 38 38 36 30 30 30 34 36 30 5F 21 12 420 2018 420 A0 420 452 420 45E 420 408 420 490 420 98 420 45C 420 452 5F 22 0C 420 201C 420 452 420 203A 420 98 420 45C 420 452 5F 23 14 420 45C 420 98 420 459 420 45B 420 203A 420 452 420 2022 420 2019 420 45C 420 452 5F 25 01 02 5F 24 04 13 08 19 201A 7F 30 33 5F 31 06 420 A0 420 45B 420 A4 5F 32 27 420 A0 420 455 421 403 421 403 420 451 420 2116 421 403 420 454 420 B0 421 40F 20 420 A4 420 B5 420 491 420 B5 421 402 420 B0 421 2020 420 451 421 40F 5F 29 12 420 A0 420 45B 420 40E 420 45E 420 45B 420 2019 2D 420 45C 2F 420 201D 5F 2A 04 452 00 вот блок 1 5F26 и его данные автор5F 26 10 36 31 35 31 37 31 30 38 38 36 30 30 30 34 36 30 5F 21 12 420 2018 420 A0 420 452 420 45E 420 408 420 490 420 98 420 45C 420 452 5F 22 0C 420 201C 420 452 420 203A 420 98 420 45C 420 452 5F 23 14 420 45C 420 98 420 459 420 45B 420 203A 420 452 420 2022 420 2019 420 45C 420 452 5F 25 01 02 5F 24 04 13 08 19 201A 7F 30 33 5F 31 06 420 A0 420 45B 420 A4 5F 32 27 420 A0 420 455 421 403 421 403 420 451 420 2116 421 403 420 454 420 B0 421 40F 20 420 A4 420 B5 420 491 420 B5 421 402 420 B0 421 2020 420 451 421 40F 5F 29 12 420 A0 420 45B 420 40E 420 45E 420 45B 420 2019 2D 420 45C 2F 420 201D 5F 2A 04 452 00 далее блок 2 5F21 и его данные ну и т.д. блок 1 - это просто цифры, блок 2 - текст в UTF8 как с этим работать, чтобы без колхоза, а так же кратко, как и в JS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2018, 14:45 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
genok, пошагово посмотри в свой JS - увидишь сколько там колхоза за рюшечками )) И это не hex, это utf8_symbols to hex. Посмотри на raw_bytes to hex и увидишь закономерности ... Потом наколхозь на Delphi и наслаждайся решением непонятной задачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2018, 15:09 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
genokчто это за тип такой, что такому типу соответствует в Delphi и как с этим работать хоть примерно? Microsoft JS (у меня) типа ByteString не знает. Судя по названию, это просто строка байт (попробуйте ее превратить в hex dump методом toString). Аналогом в дельфи мо;ет быть AnsiString, RawByteString или String в древних дельфях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2018, 15:41 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
genok Код: javascript 1. А это точно не самопальный js объект? genokдалее в нее считываются данные, и получение значений этого массива происходит вот так: С js не прокатывает, как с паскалем, однозначно интерпретировать кусок кода. Фиг знает что Вы с бабелем делаете... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2018, 20:53 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
джиэсделфиПотом наколхозь на Delphi и наслаждайся решением непонятной задачи. задача вполне понятна - получение данных со смарт-карты с использованием команд APDU выдаются данные вот такими кусками, причем разнотипные (utf8, datetime и т.п.) в одной строке Ansistring ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2018, 10:05 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
genokзадача вполне понятна - получение данных со смарт-картыА я то думал это "моё железо". с использованием команд APDUО, новое слово которого нет в iнет? выдаются данные вот такими кусками, причем разнотипные (utf8, datetime и т.п.) в одной строке Ansistring"0x5F" говорит о том, что тип данных в этом поле ты должен знать сам. Кроме того, там дальше идентификатор поля и длина. Так что, бери лопату и в поле! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2018, 11:44 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
[quote genok]автор 5F 26 10 36 31 35 31 37 31 30 38 38 36 30 30 30 34 36 30 вот блок 1 5F26 и его данные блок 1 - это просто цифры не совсем так, это цифры текстом, скорее всего в кодировке UTF-8, и перед ними один байт с длиной $10 = 16 каких-то единиц (сиволов? байтов? слов?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2018, 19:24 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
[quote Arioch]genokавтор 5F 26 10 36 31 35 31 37 31 30 38 38 36 30 30 30 34 36 30 вот блок 1 5F26 и его данные блок 1 - это просто цифры не совсем так, это цифры текстом, скорее всего в кодировке UTF-8, и перед ними один байт с длиной $10 = 16 каких-то единиц (сиволов? байтов? слов?) судя по куску, $10 - это длина блока, в данном случае 16 байт (=$10) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2018, 20:45 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
defecator, в данном случае так совпало, что в UTF-8 символы цифр занимают по одному байту, так что мы просто не можем различить эти случаи а считать длину второго блока в буквах и байтах мне просто лень ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 15:01 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
Ariochdefecator, в данном случае так совпало, что в UTF-8 символы цифр занимают по одному байту, так что мы просто не можем различить эти случаи а считать длину второго блока в буквах и байтах мне просто лень а мне вообще лень считать, потому что тут не HEX: автор30 5F 21 12 420 2018 420 A0 420 452 420 45E 420 408 420 490 420 98 420 45C 420 452 5F 22 0C ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 15:06 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
defecator, и это тоже, потому я собирался упомянуть UTF-16 (но поскольку у нас не JAva, а JScript не стал) вполне возможно это таки HEX, но двубайтовых элементов, нeсмотря на "00" и "04" просто представь, что стандартное IntToHex( Ord(ch), 2 ) компиляли сначала в старой Дельфи (char=AnsiChar), а потом перекомпиляли в новой (char=Widechar) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 15:30 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
Ariochdefecator, и это тоже, потому я собирался упомянуть UTF-16 (но поскольку у нас не JAva, а JScript не стал) вполне возможно это таки HEX, но двубайтовых элементов, нeсмотря на "00" и "04" просто представь, что стандартное IntToHex( Ord(ch), 2 ) компиляли сначала в старой Дельфи (char=AnsiChar), а потом перекомпиляли в новой (char=Widechar) при чём тут это ? компилять могла где угодно, формат HEX - это не 420 2018 420 A0 420 а примерно вот так: 42 02 01 84 20 A0 42 00 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 15:48 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
defecator, вообще говоря, "формат HEX" - это просто последовательность 16-ричных чисел с разделителями в человеко-читаемой форме. И текста программы, которая в данном случае его генерила, со всеми ее умолчаниями и багами, у нас нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 15:55 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
Arioch И текста программы, которая в данном случае его генерила, со всеми ее умолчаниями и багами, у нас нет. вот текст Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 16:05 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
Ariochне совсем так, это цифры текстом, скорее всего в кодировке UTF-8, и перед ними один байт с длиной $10 = 16 каких-то единиц (сиволов? байтов? слов?) круто, я сам не допер что это длина спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 16:11 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
genok, а что там еще могло быть? или с другого конца, а где ещё могла быть длина? genokвот текст Код: pascal 1. я говорил, про реальные текст, который из твоего JS-объекта порождает вот это вот "5F 26 10 36 31 35 31 ... " или ты этот hex-текст на Delphi генеришь из двоичного буфера? а Delphi какой версии ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 16:37 |
|
||
|
JavaScript=>Delphi
|
|||
|---|---|---|---|
|
#18+
Ariochgenok, https://ru.wikipedia.org/wiki/Tag-length-value спасибо за ликбез подскажите тогда еще вот такую вещь: автор5F 24 04 13 08 19 201A 7F 30 33 здесь зашифрована дата 13.08.1982 как её можно получить? для получения UTF8 кусков сделал такой говнокод: авторprocedure TForm1.Button2Click(Sender: TObject); var str: string; P, L: integer; begin str:=inputString; p:=pos(Hex2Bin('$5F$21'), str); L:=Ord(Str[p+2]); memo1.Lines.Add(UTF8ToAnsi(RawByteString(copy(str, p+3, L)))); end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2018, 17:20 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39610219&tid=2041170]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
159ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 490ms |

| 0 / 0 |
