Problem z właściwym odczytem danych z serwera

0

Witam serdecznie! potrzebuję pomocy lub nakierowania jak rozwiązać problem.

Aplikacją napisaną w Delphi łączę się z serwerem(urządzeniem) za pomocą ICS. Połączenie działa prawidłowo. Wysyłam polecenie w postaci HEX i w podglądzie za pomocą sniffa widzę że dotarła i wywołała odpowiedź także w HEX.

procedure TForm1.WSocket1DataAvailable(Sender: TObject; ErrCode: Word);
var
data : String;
begin
  data := WSocket1.ReceiveStr;
  Memo1.Lines.Add('String na HEX:' + StringToHex(data));
end;

function StringToHex(S: String):String;

begin
  Result := '';
  for i := 1 to Length(S) do
  Result := Result + '/' + IntToHex(Ord(S[i]),2) + '(' + IntToStr(i) + ')';
end;

Odpowiedź powinna być następująca:

FE(1)/FE(2)/00(3)/00(4)/00(5)/00(6)/00(7)/00(8)/00(9)/00(10)/00(11)/00(12)/00(13)/00(14)/00(15)/00(16)/00(17)/00(18)/00(19)/32(20)/86(21)/FE(22)/0D(23)

a przychodzi :

String na HEX:/163(1)/163(2)/00(3)/00(4)/00(5)/00(6)/00(7)/00(8)/00(9)/00(10)/00(11)/00(12)/00(13)/00(14)/00(15)/00(16)/00(17)/00(18)/00(19)/32(20)/2020(21)/163(22)/0D(23)

Proszę o pomoc!

2

Twój String zapewne jest WideStringiem, a nie AnsiStringiem.

0

Z desperacji cofnąłem się do podstaw i właśnie czytałem o tablicach. Masz racje! zmieniłem String na AstriString i nastała światłość! dzięki!

1 użytkowników online, w tym zalogowanych: 0, gości: 1