![]() |
String auf Record übertragen
Hallo,
ich habe einen Record, in den ich Daten aus einem String eintragen möchte:
Delphi-Quellcode:
Das könnte ich ja einzeln machen, z.b. so:
type
SSIDBuffer = Record SSIDCMD : char; SSIDLEV : char; SSIDCODE : array[0..24] of char; SSIDPSWD : array[0..7] of char; SSIDSDEB : array[0..4] of char; SSIDSR : char; SSIDCMPR : char; SSIDREST : char; SSIDSPEC : char; SSIDCRED : array[0..2] of char; SSIDRSV1 : array[0..4] of char; SSIDUSER : array[0..7] of char; SSIDCR : char; end; var cmdBuffer : string;
Delphi-Quellcode:
Das ist mir aber zu umständlich. Geht das irgendwie in einem Schritt ?
with SSIDBuffer do
begin SSIDCMD := copy(cmdBuffer,1,1); SSIDLEV := copy(cmdBuffer,2,1); ... end; |
Re: String auf Record übertragen
Ja:
Delphi-Quellcode:
Kopiert zuverlässig alle Zeichen von String in MyRecord.
Move(String[1], MyRecord, Length(String));
|
Re: String auf Record übertragen
Kann sein, dass ich jetzt was falsch verstehe, aber müsste nicht auch
Delphi-Quellcode:
gehen? :gruebel:
SSIDBuffer1.SSIDCODE:='Hallo!';
|
Re: String auf Record übertragen
Zitat:
@Dax: Danke. Aber manchmal steht in den ersten Feldern binärer Müll. |
Re: String auf Record übertragen
Dann musst du den Record erst leeren:
Delphi-Quellcode:
Kann Dein, dass die letzten zwei Parameter verdreht sind.. ich blick' da nicht immer so ganz durch..
FillChar(MyRecord, 0, sizeof(MyRecord))
|
Re: String auf Record übertragen
Zitat:
|
Re: String auf Record übertragen
Zitat:
Delphi-Quellcode:
Offensichtlich kopiert aber Move von hinten nach vorn. Deshalb darf length(cmdBuffer) nie kleiner als Sizeof(LBuffer) sein!
FillChar(LBuffer, sizeof(LBuffer),32);
cmdBuffer := 'X1O00130013SOFTWUNION000001SOFTSERV01024BNNN002 USER1234'+#13; Move(cmdBuffer[1], LBuffer, length(cmdBuffer)); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:49 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