![]() |
Record <> String umwandlung
Hi ihrs!
Wie schaff ich das möglichst einfach (Pointer???)?
Delphi-Quellcode:
Vielen Dank
type
TMyRecord = record x:boolean; y:boolean; end; function RecordToStr(input:TMyRecord):string; begin //??? end; function StrToRecord(input:string):TMyRecord; begin //??? end; |
Re: Record <> String umwandlung
Ich weiß nicht wie es den anderen geht aber ich verstehe deine "Frage" jetzt nicht so ganz - kannst du vieleicht im Einzeln erklären was du überhaupt machen möchtest?
Mfg |
Re: Record <> String umwandlung
Ich will den Record übers Netwerk versenden und dafür muss er als String vorhanden sein.
Delphi-Quellcode:
type
TMyRecord = record x:boolean; y:boolean; end; var MyRecord:TMyRecord; EinString:string; function RecordToStr(input:TMyRecord):string; begin //??? end; function StrToRecord(input:string):TMyRecord; begin //??? end; procedure TForm1.Button1Click(Sender: TObject); begin EinString:=RecordToStr(MyRecord); //Der String kann jetzt versendet werden MyRecord:=StrToRecord(EinString); end; |
Re: Record <> String umwandlung
Das kannst du nicht machen. Wenn ein Nullbyte im String vorkommt, ist er an dieser Stelle terminiert. Du verlierst den Rest der Daten. Ein Array of Byte wäre sinnvoller.
|
Re: Record <> String umwandlung
Hallo SleepyMaster,
müssen es unbedingt Records sein oder kannst Du auch einen Erben von TPersistent erstellen, so dass Du mit TReader und TWriter die Serialisierung der Delphi-Komponenten verwenden kannst? Eine Lösung mit Records wirst Du nicht auf automatischen Weg (ohne PreCompiler) hinbekommen, weil zu ihnen keine Reflektionsinformationen (RTTI) abgelegt werden. |
Re: Record <> String umwandlung
@choose
Wenn du mal ein kurzes Beispiel gibst wäre es auch mit TPersistent ok! Vielen Dank schon mal! |
Re: Record <> String umwandlung
Ich vogel wollte dir gerade dir Functionen mit IF sätzen schreiben :drunken:
Benutz einfach strtobool und booltostr, damit sollte es funzen. Mfg |
Re: Record <> String umwandlung
Ich will den kompletten record auf einmal umwandeln. (Sind über 30 Bools drinne)
|
Re: Record <> String umwandlung
ihr immer mit euren nullen im string, delphi strings vertragen ohne probleme.
sofern du das senden ordentlich anstellst (womit eigentlich, kaum zu glauben das nur strings zu senden gehen!), und dein record nur einfache typen enthält versuch ma einfach so
Code:
function RecordToStr(const input: TMyRecord): String;
begin SetLength(Result, SizeOf(TMyRecord)); Move(input, Result[1], SizeOf(TMyRecord)); end; function StrToRecord(const input: String): TMyRecord; begin //if Length(input) = SizeOf(TMyRecord) then Move(input[1], Result, SizeOf(TMyRecord)); end; |
Re: Record <> String umwandlung
@Currywurst
Super!!! So gehts ohne Probleme! Vielen Dank! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz