![]() |
Steuerzeichen im String
Hallo zusammen,
ich stehe grad bisschen auf dem Schlauch... Ich möchte einen String haben, der inhaltlich so aussieht: MyStr = #02#04#41#01#80#01HalloWelt Ich habe jetzt zwei Varianten:
Delphi-Quellcode:
Wenn ich mir im Debugger die Variable "Str" angucke, wurden die Steuerzeichen leider umgewandelt.
Str := #02 +
#04 + #41#01 + #80#01 + 'Hallo Welt'; Variante 2: Ich habe ein Memo, wo ich diese Zeilen im Objektinspektor in Lines.Strings eingetragen habe:
Delphi-Quellcode:
Wenn ich dann folgendes mache...
#02
#04 #41#01 #80#01 HalloWelt
Delphi-Quellcode:
... steht in "Str" der Inhalt auch so wirklich drinne wie ich will.
Str := Memo4.Lines.Text;
Str := StringReplace(tmpStr, #13#10, '', [rfReplaceAll]); Was muss ich oben in Variante 1 machen, damit es gleich aussieht? Grüße |
AW: Steuerzeichen im String
Was heißt denn umgewandelt? In was denn umgewandelt?
Ja gut im Debugger bekommst du für #41 ein ")" und für #80 ein "P" angezeigt. Aber das ist keine Umwandlung, dass ist nur eine andere Darstellung. Wenn du mal in einer Ascii-Tabelle guckst dann siehst du dass #41 dem Zeichen ")" entspricht und #80 dem Buchstaben "P". Es ist also alles richtig. |
AW: Steuerzeichen im String
Laut meinem Verständnis deines Anliegens käme ich auf diese Lösung:
Delphi-Quellcode:
Str := '#02#04#41#01#80#01Hallo Welt';
|
AW: Steuerzeichen im String
Aua, dass muss echt weh tun... Na klaro...
Danke |
AW: Steuerzeichen im String
Zitat:
|
AW: Steuerzeichen im String
Zitat:
|
AW: Steuerzeichen im String
Quatsch Glück,
Gedankenesen! Aber was hat das dann noch mit Steuerzeichen zu tun? Gruß K-H |
AW: Steuerzeichen im String
Zitat:
Code:
als ein Steuerzeichen ;)
#<ziffer><ziffer>
|
AW: Steuerzeichen im String
#80 ... alles was nicht im ASCII-Bereich liegt, dort mußt du mit der Codierung aufpassen.
PS: Bei Stringkonstanten mußt du aufpassen, denn
Delphi-Quellcode:
85 ist nicht immer 85.
Str := #$0085 + #$85 + 'Hallo Welt';
Str := #$0085#$85'Hallo Welt'; Die #$85 könnte der Compiler als ANSI verwenden und dann nach Unicode konvertieren, während das #$0085 vom Compiler (angeblich) als Unicode erkannt wird. Und dann kommt es noch darauf an, ob das Str ein AnsiString oder ein String/UnicodeString ist und als was der Compiler die Konstante anlegt, denn dabei kann es halt nochmal zum umkonvertieren kommen. Der sicherste Weg, wo es nie umkonvertiert wird, ist bei der direkten Zuweisung eines einzelnen Chars, welcher aber entweder nach obrigem Muster (#00xx) übergeben werden sollte, oder besser doch als ordinaler Wert. Oder am aller Besten ist es, wenn man Steuerzeichen (vorallem wo es Probleme geben könnte) eben nicht in Strings verwaltet, sondern "binär" in ByteArrays/Streams/Records/... . |
AW: Steuerzeichen im String
@himitsu
Das ist richtig, passt aber nun so gar nicht zum Thema. Hier sollte eben kein Zeichen als Steuerzeichen
Delphi-Quellcode:
übergeben werden sondern eine Zeichenfolge
#80
Delphi-Quellcode:
.
'#80'
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:39 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 by Thomas Breitkreuz