![]() |
SetString für WideStrings
Hi!
Folgendes Funktioniert:
Delphi-Quellcode:
Im String steht 10x #0 drin.
var
Str : String; begin SetString(Str,NIL,10); ShowMessage(Str); end; Sobald ich aber einen WideString nehme:
Delphi-Quellcode:
geht's nicht mehr. Im WideString stehen immer solche komischen Kästchen drin (Nicht die "normalen" Kästchen wenn ein Zeichen nicht im Zeichensatz drin ist, sonder noch 2 Striche oben links).
var
Str : WideString; begin SetString(Str,NIL,10); ShowMessage(Str); end; Diese setzen sich so zusammen. 1. Byte: #0 2. Byte; #47789 Das selbe passiert auch mit SetLength. Am Anfang dachte ich, es ist normal, aber auf einmal stand "Deutsch (Deutschland)" in meinem WideString :shock: . Da greift es sicherlich auf einen anderen Speicherbereich zu. Es muss doch sowas auch für Unicodes geben. Ich muss nämlich einen WideString in einen anderen mittels Move verschieben. P.S.: Ich bin mir bewusst, das ShowMessage kein Unicode darstellen kann! Das was ich sehe ist in den überwachten Ausdrücken. edit: Rechtschreibfehler |
Re: SetString für WideStrings
Zitat:
Delphi-Quellcode:
var
Str: string; P: PByteArray; I: Integer; begin GetMem(P, 18); for I := 0 to 17 do P[I] := I + 20; FreeMem(P); SetString(Str,NIL,10); ShowMessage(Str); // jetzt seht wohl nicht mehr #0#0... in Str end; |
Re: SetString für WideStrings
D.h. es funktioniert mit dem WideString auch.
Danke, das wollte ich wissen. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:08 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