Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Null-Terminierung im Memo ignorieren (https://www.delphipraxis.net/73532-null-terminierung-im-memo-ignorieren.html)

Win32.API 19. Jul 2006 14:50


Null-Terminierung im Memo ignorieren
 
Hi,

wie kann ich ein memo dazu bringen die Null-Terminierung zu ignorieren?

http://img137.imageshack.us/img137/3635/tempsq5.jpg

Wenn ich diesen String mit TMemo.lines.add() anzeigen will, wird mir in meinem Memo immer nut ein A angezeit, da nach dem A ein #0 folgt.

Wie kann ich trotzdem den gesamten string in dem Memo anzeigen (laenge ist mir bekannt).

3_of_8 19. Jul 2006 15:14

Re: Null-Terminierung im Memo ignorieren
 
Du könntest alle #0s löschen.

himitsu 19. Jul 2006 15:42

Re: Null-Terminierung im Memo ignorieren
 
aber nicht per StringReplace (von außern sieht das zwar wie eine StringFunktion aus, aber innen ist es wohl doch nur PChar)

z.B.
Delphi-Quellcode:
For i := 1 to Length(temp) do
  if temp[i] = #0 then temp[i] := ' ';
[add]
Hatte gestern auch so'n problem, nur halt mit 'nem TEdit und mein erster Gedanke war temp := StringReplace(temp, #0, ' ', [rfReplaceAll]) ... nur irgendwie wollte das nicht so richtig ._.°

Win32.API 19. Jul 2006 19:01

Re: Null-Terminierung im Memo ignorieren
 
Ahhh, jetzt gehts, danke :D

Bernhard Geyer 19. Jul 2006 21:33

Re: Null-Terminierung im Memo ignorieren
 
Wie ist dieser String in deinen String gekommen. Es schaut mir nämlich verdammt danach aus als wäre das ein Widestring den du durch ominöse Operationen in einen AnsiString bekommen hast. Und da das Widechar eines Widestrings nun mal 2 Bytes sind und die "normalen" Alphabetischen Zeichen im Bereich < #$0100 liegen hast du nun einen String der jedes 2 Byte (oder jedes zweite Zeichen in einem Ansi-String) eine Null (#$00) ist.

Der vorschlag von himitsu wird spätestens dann scheitern wenn du in deinen Daten ein €-Zeichen hast.


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:24 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