![]() |
[Delphi] Leerzeichen in StringList einfügen?
Hallo!
Mal kurze Frage zu StringList: Wenn ich versuche ein Leerzeichen einzufügen (siehe ausgeklammerter Kommentar), bekomme ich eine leere StringList...
Delphi-Quellcode:
Erste Zeile der Memo-Komponenten (memToDo, memStatus) ist eine leere Zeile (''), hängt es vielleicht damit zusammen?
procedure TForm4.SpeedButton1Click(Sender: TObject);
var mailText : TStringList; i : integer; begin mailText := TStringlist.Create(); for i := 0 to memToDo.Lines.Count -1 do mailText.Add(memToDo.Lines.Strings[i] + {' '} + memStatus.Lines.Strings[i]); end; Auch (#9,TAB) oder (#32) funktionieren nicht.... Vielen Dank, Philipp. |
Re: [Delphi] Leerzeichen in StringList einfügen?
Hallo!
Also ich kann den Fehler nicht nachvollziehen. Bei mir funktioniert das so wie es soll. Grüße Faux |
Re: [Delphi] Leerzeichen in StringList einfügen?
:!:
Oh, hatte noch vergessen zu sagen dass ich mailText.Text als PChar ausgebe.... Jetzt was Fehlerhaft? :stupid: |
Re: [Delphi] Leerzeichen in StringList einfügen?
Nur wenn irgendwo ein Zeichen mit ASCII-Wert 0(#0) steht.
|
Re: [Delphi] Leerzeichen in StringList einfügen?
Probier mal folgendes:
var s: String; //... s:=mailtext.text; Dann kannst du dir einen PChar ausgeben mit @s[1] Denn mailtext.text könnte eventuell ein 8Bit Zeiger sein, wenn ich mich nicht irre. |
Re: [Delphi] Leerzeichen in StringList einfügen?
Zitat:
Vielleicht habe ich dich missverstanden, aber ich habe das so probiert:
Delphi-Quellcode:
Und im Label1 steht dann, wenn im Memo1 'Memo1' und im Memo2 'Memo2' steht, 'Memo1 Memo2'. Also mit Leerezciehn und allem drum und dran.
procedure TForm1.Button1Click(Sender: TObject);
var mailText : TStringList; i : integer; a: PChar; begin for i := 0 to Memo1.Lines.Count -1 do a := PChar(Memo1.Lines.Strings[i] + ' ' + Memo1.Lines.Strings[i]); Label1.Caption := string(a); end; Grüße Faux |
Re: [Delphi] Leerzeichen in StringList einfügen?
Sehr seltsam...bei mir klappt´s nicht.
Immer noch leer! :gruebel: |
Re: [Delphi] Leerzeichen in StringList einfügen?
Zitat:
Übrigens @S[1] ist ungesunder als PChar(S). Zum einen ist @S[1] langsamer, weil intern UniqueString aufgerufen wird. Und zweitens bekommt man einen EAccessViolation wenn S leer ist. Bei PChar(S) wird hingegen bei einem Leerstring ein Zeiger auf einen "String" mit #0 geliefert. @Loki77: mailText gibst du aber schon wieder frei? Vielleicht solltest du mal mit dem Debugger die Inhalte der einzelnen Zeilen-Strings überprüfen. |
Re: [Delphi] Leerzeichen in StringList einfügen?
Das ist alles ein bisschen Quark (oder auch Käse :zwinker:), denn es sind 3 TStrings-Objekte
beteiligt: mailText, memToDo.Lines und memStatus.Lines. mailText ist das Ziel der Operation, das ist soweit klar. Ist nun memToDo.Lines.Count = memStatus.Lines.Count oder unterscheiden sich diese Werte ? Ist memToDo.WordWrap auf True eingestellt ? Falls ja, sind optisch evtl. mehr Zeilen sichtbar, als Zeilenumbrüche vorhanden. Schon mal versucht, "mailText" in einen Datei zu speichern ?
Delphi-Quellcode:
So lässt sich sicher feststellen, was drin steht.
mailText.SaveToFile('C:\mailText.txt');
|
Re: [Delphi] Leerzeichen in StringList einfügen?
@ 3_of_8
mailText.Free passiert, spielt aber für mein problem keine Rolle.... Aber: was macht #$D#$A in meinen Strings?? --Ansonsten ist alles da und wo es sein soll :wink: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:43 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