Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi TStringList.Text immer mit Zeilenumbruch am Ende (https://www.delphipraxis.net/114376-tstringlist-text-immer-mit-zeilenumbruch-am-ende.html)

Pfoto 24. Mai 2008 08:31


TStringList.Text immer mit Zeilenumbruch am Ende
 
Hallo zusammen,

ich möchte den Text einer StringList auswerten,
und habe erst jetzt bemerkt, dass der Text immer auch
als letztes Zeichen einen Zeilenumbruch enthält.

Was ist der Sinn des Ganzen? Ich nehme an, dass
es kein Bug ist. Ich benutzte Turbo Delphi 2006.

Delphi-Quellcode:
  StringList:= TStringList.Create;
  try
    StringList.Text:= 'Test';
    ShowMessage('"' + StringList.Text + '"');
  finally
    StringList.Free;
  end;
Die Ausgabe erscheint also so:
"Test
"

Per copy kann ich das zwar korrigieren, aber mich würde
schon interessieren, warum Delphi das so macht.
Wisst ihr da Bescheid?



Dank und Gruß
Pfoto

grenzgaenger 24. Mai 2008 08:42

Re: TStringList.Text immer mit Zeilenumbruch am Ende
 
eine textzeile endet normal mit 'n zeilenumbruch...

denn irgendwann ist ja der seitenrand erreicht... <sich grob erinnert>

DeddyH 24. Mai 2008 08:53

Re: TStringList.Text immer mit Zeilenumbruch am Ende
 
Statt Copy kannst Du aber auch TrimRight nehmen.

[edit] @Chäffe: 2 Doofe, ein Gedanke :cheers: [/edit]

Daniel 24. Mai 2008 08:54

Re: TStringList.Text immer mit Zeilenumbruch am Ende
 
Offenbar hängt es mit der Eigenschaft "LineBreak" der Stringliste zusammen, denn wenn Du diese auf einen Leerstring setzt, dann hast Du keinen zusätzlichen Zeilenumbruch.

Das hat allerdings auch Auswirkungen auf die Methode "Add()". Normalerweise hängt diese ja jeweils eine Zeile an das Ende der Liste ran, wenn Du jedoch wie oben beschriebne den Zeilenumbruch ausschaltest, dann bekommst Du auch mittels "Add()" keine weiteren Zeilen. Wenn Du also weißt, was Du machst, kannst Du hiermit vielleicht das gewünschte Verhalten erreichen - solltest Dich dann aber nicht wundern, warum alles in einer Zeile klebt. ;-)


Ansonsten würde ich das nicht wie von Dir angeregt mit "Copy()" korrigieren, sondern mit "Trim()" - zumindest dann, wenn es nicht noch um Leerzeichen am Anfang oder Ende geht, die erhalten bleiben sollen.

Pfoto 24. Mai 2008 09:02

Re: TStringList.Text immer mit Zeilenumbruch am Ende
 
Ok, danke Euch!

Mir war es halt unangenehm aufgefallen, da es sich bei der Zeile um einen
Dateinamen handelte und auf den ersten Blick habe ich eben den Zeilenumbruch
nicht bemerkt und lange in der falschen Richtung gesucht.

Gruß
Pfoto


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz