![]() |
Array of Char Frage
Hallo,
Ich möchte aus einer ini hex werte lesen, das klappt sehr gut. In der ini sind diese Hex werte unterschiedlich lang. bislang hab ich es so gelöst.
Delphi-Quellcode:
Wie bekomme ich das dynamischer hin mit ch: array of char z.B.
var
ss:= WideString; ... ss:= chr(idx[0]) + chr(idx[1]) + chr(idx[2]) + chr(idx[3]) + chr(idx[4]); <--- Weis jemand Rat? Gruß Bernd [edit=mkinzler]Code-Tag durch Delphi-Tag ersetzt Mfg, mkinzler[/edit] |
Re: Array of Char Frage
Wie ist idx definiert, und wie wird es befüllt?
|
Re: Array of Char Frage
also rein logisch ginge es natürlich so :zwinker:
Delphi-Quellcode:
pratisch aber einfach alles kopieren.
ss := '';
for i := 0 to High(idx) do ss := ss + chr(idx[i]); ! aber Achtung, die Elemente in idx müssen hierfür genauso groß sein wie ein Char.
Delphi-Quellcode:
ups, hab das WideStirng übersehn
//SetLength(ss, Length(idx));
//MoveMemory(ss[1], Length(idx) * SizeOf(Char));
Delphi-Quellcode:
Aber idx[i] muß hier natürlich genau 2 Byte aka SizeOf(WideChar) groß sein
SetLength(ss, Length(idx));
MoveMemory(ss[1], Length(idx) * SizeOf(WideChar)); // bzw. SetLength(ss, Length(idx)); MoveMemory(ss[1], Length(idx) * 2)); |
Re: Array of Char Frage
Allerdings ist ein WideString kein nativer Delphistring. Deshalb besser mit nativen Typ arbbeiten und dann zuweisen
|
Re: Array of Char Frage
Zitat:
|
Re: Array of Char Frage
Ich würde mich aber auf die interne Implementierung nicht verlassen
|
Re: Array of Char Frage
Hallo,
Vielen Dank für die Tips. Ich lese die ini in eine stringlist (sl) ein, dann wird wird sl convertiert in ein integer (idx), und dieser wiederum dann als chr zum Drucker gesendet das Klappt auch und wird auch ausgeführt. Nur ebend das es dynamischer werden muss. Gruß bernd |
Re: Array of Char Frage
Verwende doch StringList.Text/DelimitedText
|
Re: Array of Char Frage
In der ini stehen die hex werte so drin: 1d,33, usw. in der stringlist schreibe ich sie mit commatext und hänge jedem noch ein $ vorne dran um sie dann als integer zu convertieren.
gruß bernd |
Re: Array of Char Frage
Warum nutzt di eigentlich nicht TIniFile + .ReadBinaryStream und ließt es in einen Stream ein ... von dem Stream aus, kannst du es dann dahin schreiben, wie/wo du willst.
|
Re: Array of Char Frage
hmmm, hab mich mit binarystream noch nicht so befasst. wie könnte man den das realisieren?
gruß bernd |
Re: Array of Char Frage
Delphi-Quellcode:
statt einem AnsiString könnte man auch leicht ein Byte-Array oder Dergleichen verwenden
var ini: TIniFile;
stream: TStream; S: AnsiString; stream := TMemoryStream.Create; try ini := TIniFile.Create('name.ini'); try ini.ReadBinaryStream('section', 'ident', stream); stream.Position := 0; SetLength(S, stream.Size); stream.ReadBuffer(S[1], stream.Size); finally ini.Free; end; finally stream.Free; end; // in S wären nun die Daten drin |
Re: Array of Char Frage
Das ist ne sehr interessante sache, werd ich mal umsetzen.
Vielen Dank! Gruß Bernd |
Re: Array of Char Frage
Hallo,
Ich habs mal ausprobiert und ich hab festgestellt das nun S als string behandelt wird. Der Drucker druckt S aus. Gruß Bernd |
Re: Array of Char Frage
Zeig doch mal Deinen Code.
|
Re: Array of Char Frage
ich verwende den Code von himitsu.
und füge S dann ein
Delphi-Quellcode:
gruß bernd
WriteLn (d,s);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:07 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