powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / JavaScript=>Delphi
25 сообщений из 48, страница 1 из 2
JavaScript=>Delphi
    #39610147
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть исходник для работы с моим железом, но он на JS
помогите с данными разобраться

объявлена переменная типа ByteString
Код: javascript
1.
 this.data0201 = new ByteString("", HEX);



далее в нее считываются данные, и получение значений этого массива происходит вот так:

Код: javascript
1.
2.
3.
4.
5.
      ["ROOT",             0x0201, 2,    ""],
      ["Identity_1",       0x0201, 0x21, "utf8"],
      ["Identity_2",       0x0201, 0x22, "utf8"],
      ["Identity_3",       0x0201, 0x23, "utf8"],
      ["BirthDate",        0x0201, 0x24, "date"],



что это за тип такой, что такому типу соответствует в Delphi и как с этим работать хоть примерно?
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610185
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то типа
Код: pascal
1.
2.
Var
  Buf: array of Byte;


?
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610186
edruzenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
json
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610187
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
edruzenkojson

нет
там данные приходят в бинарном виде, одной строкой
если сделать целиком над строкой вот такое:
Код: pascal
1.
UTF8ToString(RawByteString(input))



то на выходе получим длинную строку со вкраплениями нужного текста
никаких json-овских скобок там нет

типа вот такого:
автор% _$ � 03_1 РОФ_2'Российская Федерация_) РОСТОВ-Н/Д_* �
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610199
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11что-то типа
Код: pascal
1.
2.
Var
  Buf: array of Byte;


?

тоже была гипотеза про массив байтов
но хотел узнать у знающего ALL, может кто точно знает, без гипотез

тип-то конкретно описан: ByteString
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610209
genokто на выходе получим длинную строку со вкраплениями нужного текстапокажи не строку а её содержимое в hex
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610217
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
джиэсделфи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
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610219
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор 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?
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610223
genok, пошагово посмотри в свой JS - увидишь сколько там колхоза за рюшечками ))

И это не hex, это utf8_symbols to hex. Посмотри на raw_bytes to hex и увидишь закономерности ...

Потом наколхозь на Delphi и наслаждайся решением непонятной задачи.
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610227
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
genokчто это за тип такой, что такому типу соответствует в Delphi и как с этим работать хоть примерно?
Microsoft JS (у меня) типа ByteString не знает. Судя по названию, это просто строка байт (попробуйте ее превратить в hex dump методом toString). Аналогом в дельфи мо;ет быть AnsiString, RawByteString или String в древних дельфях.
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610290
stanilar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
genok
Код: javascript
1.
new


А это точно не самопальный js объект?

genokдалее в нее считываются данные, и получение значений этого массива происходит вот так:
С js не прокатывает, как с паскалем, однозначно интерпретировать кусок кода. Фиг знает что Вы с бабелем делаете...
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610464
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
джиэсделфиПотом наколхозь на Delphi и наслаждайся решением непонятной задачи.

задача вполне понятна - получение данных со смарт-карты с использованием команд APDU
выдаются данные вот такими кусками, причем разнотипные (utf8, datetime и т.п.) в одной строке Ansistring
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610541
genokзадача вполне понятна - получение данных со смарт-картыА я то думал это "моё железо".

с использованием команд APDUО, новое слово которого нет в iнет?

выдаются данные вот такими кусками, причем разнотипные (utf8, datetime и т.п.) в одной строке Ansistring"0x5F" говорит о том, что тип данных в этом поле ты должен знать сам. Кроме того, там дальше идентификатор поля и длина. Так что, бери лопату и в поле!
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610872
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[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 каких-то единиц (сиволов? байтов? слов?)
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39610886
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
[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)
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39611256
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

в данном случае так совпало, что в UTF-8 символы цифр занимают по одному байту, так что мы просто не можем различить эти случаи

а считать длину второго блока в буквах и байтах мне просто лень
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39611261
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
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
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39611284
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

и это тоже, потому я собирался упомянуть UTF-16 (но поскольку у нас не JAva, а JScript не стал)

вполне возможно это таки HEX, но двубайтовых элементов, нeсмотря на "00" и "04"

просто представь, что стандартное IntToHex( Ord(ch), 2 ) компиляли сначала в старой Дельфи (char=AnsiChar), а потом перекомпиляли в новой (char=Widechar)
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39611294
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
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
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39611295
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecator,

вообще говоря, "формат HEX" - это просто последовательность 16-ричных чисел с разделителями в человеко-читаемой форме. И текста программы, которая в данном случае его генерила, со всеми ее умолчаниями и багами, у нас нет.
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39611302
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arioch И текста программы, которая в данном случае его генерила, со всеми ее умолчаниями и багами, у нас нет.

вот текст
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
function Bin2HexExt(const input:string; const spaces: boolean): string;
var
   loop      : integer;
   hexresult : string;
begin
     hexresult := '';
     for loop := 1 to Length(input) do
        begin
        hexresult := hexresult + IntToHex(Ord(input[loop]),2);
        if spaces then hexresult := hexresult + ' ';
        end;
     result := AnsiUpperCase(hexresult);
end;
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39611306
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ariochне совсем так, это цифры текстом, скорее всего в кодировке UTF-8, и перед ними один байт с длиной $10 = 16 каких-то единиц (сиволов? байтов? слов?)

круто, я сам не допер что это длина
спасибо
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39611331
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
genok,

а что там еще могло быть?
или с другого конца, а где ещё могла быть длина?
genokвот текст

Код: pascal
1.
function Bin2HexExt



я говорил, про реальные текст, который из твоего JS-объекта порождает вот это вот "5F 26 10 36 31 35 31 ... "

или ты этот hex-текст на Delphi генеришь из двоичного буфера? а Delphi какой версии ?
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39611335
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
JavaScript=>Delphi
    #39611363
genok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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;
...
Рейтинг: 0 / 0
25 сообщений из 48, страница 1 из 2
Форумы / Delphi [игнор отключен] [закрыт для гостей] / JavaScript=>Delphi
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]