Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi SetString für WideStrings (https://www.delphipraxis.net/103162-setstring-fuer-widestrings.html)

halinchen 11. Nov 2007 15:17


SetString für WideStrings
 
Hi!

Folgendes Funktioniert:
Delphi-Quellcode:
var
  Str : String;
begin
  SetString(Str,NIL,10);
  ShowMessage(Str);
end;
Im String steht 10x #0 drin.

Sobald ich aber einen WideString nehme:
Delphi-Quellcode:
var
  Str : WideString;
begin
  SetString(Str,NIL,10);
  ShowMessage(Str);
end;
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).
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

jbg 11. Nov 2007 16:38

Re: SetString für WideStrings
 
Zitat:

Zitat von halinchen
Folgendes Funktioniert:
Delphi-Quellcode:
var
  Str : String;
begin
  SetString(Str,NIL,10);
  ShowMessage(Str);
end;
Im String steht 10x #0 drin.

Purer Zufall.

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;

halinchen 11. Nov 2007 16:48

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