TIdBytes lesbar in INI speichern und wieder auslesen
hi,
irgendwie stehe ich mal wieder so richtig auf dem Schlauch. Ich mache aktuell eine kleine Anwendung, um eine Kamera dazu zu bewegen, ihre vordefinierten Presets anzufahren. Mein Code dafür schaut grob so aus
Delphi-Quellcode:
Ich versuche jetzt die Bytes in eine INI zu speichern. Das geht auch ganz gut damit:
class procedure TPresets.preset1;
var MessageToSend: Tidbytes; begin setlength(MessageToSend, 7); MessageToSend[0] := $81; MessageToSend[1] := $01; MessageToSend[2] := $04; MessageToSend[3] := $3F; MessageToSend[4] := $02; MessageToSend[5] := $01; MessageToSend[6] := $FF; with TIniFile.Create(ParamStr(0).Replace('.exe', '.conf')) do begin TIdUDPClient.Create(nil).SendBuffer(IP, PORT, MessageToSend); end; end;
Delphi-Quellcode:
Dann bekomme ich sowas wie:
class function TPresets.ByteArrayToString(byteArray: Tidbytes): string;
var i: Integer; begin result := ''; if byteArray <> nil then begin result := IntToHex(byteArray[0], 2); for i := 1 to High(byteArray) do result := result + '-' + IntToHex(byteArray[i], 2); end; end;
Code:
81-01-04-3F-02-01-FF
Wie bekomme ich das jetzt wieder zurück in das TIdBytes gelesen. Ich hab schon alles Mögliche durch, aber steh glaube ich mega auf dem Schlauch. |
AW: TIdBytes lesbar in INI speichern und wieder auslesen
Split auf die '-' und dann mit
Delphi-Quellcode:
StrToInt('$' + 'FF')
oder das Minus weglassen und rückzu alle 2 Chars splitten oder, wenn man es dann schon "zusammen" hat, einfach gemeinsam mit BinToHex und HexToBin in/von einen String oder "modernere" Streaming-Klassen ala TNetEncoding.Base64.EncodeBytesToString oder ... Und an gewisse neuere Features kann man sich auch gewöhnen.
Delphi-Quellcode:
MessageToSend := [$81, $01, $04, $3F, $02, $01, $FF];
PS: Ich würde dir mal ein
Delphi-Quellcode:
anraten, aber dann nicht erschrecken, falls das "grob" nicht zu viel weg ließ.
ReportMemoryLeaksOnShutdown := True;
|
AW: TIdBytes lesbar in INI speichern und wieder auslesen
Hi Himitsu,
Ich werde deinen Vorschlag Mal versuchen umzusetzen. Der Code war nur Quick & Realy Dirty reingehauen um zu sehen ob es überhaupt funktionieren würde. In der Endfassung wird das alles hübsch mit try finallys instanziert oder gleich in ein Interface gepackt. Aber danke für den Hinweis :) |
AW: TIdBytes lesbar in INI speichern und wieder auslesen
Moin...8-)
Zitat:
|
AW: TIdBytes lesbar in INI speichern und wieder auslesen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:15 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz