![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Пишу программу в Delphi XE8, разбирающую пакет данных, захваченный с помощью Wireshark и сохраненный в текстовый файл.
В файле содержится текст в виде: "d0 b2 d0 b0 d0 b4 d1 8f" или "6d 61 6b 61 72". (в первом случае это "вадя", во втором "makar"). Помогите, пожалуйста, как этот текст декодировать? |
|
#2
|
||||
|
||||
|
Вот для "makar" это под D7 работает
Код:
procedure TForm1.Button1Click(Sender: TObject);
const Source: string = '6d 61 6b 61 72';
var
s: string;
i: integer;
begin
with TStringList.Create do
try
Text := StringReplace(Source, #32, #13#10, [rfReplaceAll]);
s:= '';
for i := 0 to Count - 1 do
s:= s + Chr(StrToInt('$' + Strings[i]));
ShowMessage(s);
finally
Free;
end;
end; |
| Этот пользователь сказал Спасибо Alegun за это полезное сообщение: | ||
proshka (19.04.2017)
| ||
|
#3
|
|||
|
|||
|
Решение подсказал Serge_Bliznykov с другого форума. Вот оно:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var s, sr : AnsiString;
i : integer;
ws : widestring;
begin
s := 'd0 b2 d0 b0 d0 b4 d1 8f';
i := 1;
sr := '';
while i<Length(s) do begin
sr := sr + AnsiChar(StrToInt('$'+copy(s,i,2)));
Inc(i,3);
end;
ws := utf8decode(sr);
ShowMessage(ws);
end; |