![]() |
sowas wie Trim für TStrings?
Hi,
ich habe hier ne Komponente, die den Inhalt einer Stringliste in HTML-Strings konvertiert. Übergeben werden TStrings in meinem Falle RichEdit.Lines. Leider schreibt mir die Konvertierung immer am Schluss noch ein mit rein, was wohl am Cursor im RichEdit Feld liegt. Aber sowas wie Trim für TStrings gibts wohl nicht, oder? Gruß Gambit |
Re: sowas wie Trim für TStrings?
Ich verstehe dein Problem nicht genau. Warum wird ein
eingefügt? Ist am Ende der Liste ein Leerzeichen zuviel? Dann macht doch Trim( TStrings.Text ) |
Re: sowas wie Trim für TStrings?
sobald ich etwas in das RichEdit reinschreibe und sei es auch nur ein Leerzeichen wird bei der Konvertierung hinter dem Text ein
angefügt, warum weiß ich auch nicht. die Funktion aus den Jedis sieht so aus:
Delphi-Quellcode:
JvStringListToHtml.ConvertToHTMLStrings(RichEdit.Lines, aList);
Delphi-Quellcode:
nützt da nix
Trim(RichEdit.Lines.text);
muss ichs wohl nach der Konvertierung manuell rausschmeißen... |
Re: sowas wie Trim für TStrings?
Zitat:
Aber wo ist denn das Problem. Ansonsten schau halt in die Komponente, auf welches Zeichen die reagieren. Vermutlich CRLF. Aber das ist ja eigentlich auch nicht falsch. entspricht doch mehr oder weniger dem Zeilenende im Richedit. |
Re: sowas wie Trim für TStrings?
ich brauche wohl noch etwas Verständnis zu einem RichEdit. Warum gibt mir zB. bei einem einzigen Buchstaben im RichEdit die Funktion
Delphi-Quellcode:
die Zahl 7 zurück, nachdem ich die Lines aus dem RichEdit in die Stringliste kopiert habe?
showMessage(IntToStr(length(aList.Text)));
|
Re: sowas wie Trim für TStrings?
Sollte doch so funktionieren:
Delphi-Quellcode:
PS: Text muß immer wieder neu generiert werden, daherprocedure TrimStrings(const Strings: TStrings); var i: Integer; begin for i := 0 to Strings.Count -1 do Strings[i] := Trim(Strings[i]); end; dürfte die einfache Variante auch die langsamste sein. Die obengenannte Version kann man sicherlich noch etwas optimieren. (nicht getestet...) |
Re: sowas wie Trim für TStrings?
das abschließende "
" ergibt sich weil die Routine für "TStrings.Text" in einer schleife die zeilen hintereinander hängt und mit #13#10 abschließt:
Delphi-Quellcode:
dadurch wird eben selbst bei einer einzelnen zeile oder eben einem einzelnen buchstaben noch ein #13#10 angehängt. Du müsstest also die routine selbst schreiben
result := '';
for i := 0 to Stringliste.Count - 1 do result := result + Stringliste.Strings[i] + #13#10;
Delphi-Quellcode:
result := '';
for i := 0 to Stringliste.Count - 1 do result := result + Stringliste.Strings[i] + #13#10; if Stringliste.Count > 0 then //es kann nur was entfernt werden wenn was da ist SetLength(result, length(Result) - 2)); //damit wird das letzte #13#10 entfernt |
Re: sowas wie Trim für TStrings?
wo hast du die Routine denn jetzt hergenommen? Aber es stimmt schon, in dem Source von Jedi lautet der Teil so:
Delphi-Quellcode:
ist ja im Prinzip das Gleiche. Verstehe jetzt nur nicht, warum die deine Lösung da jetzt nicht mit eingebaut haben? Wahrscheinlich, weil es auch ziemlich egal ist, ob am Ende noch ein
for I := 0 to Source.Count - 1 do
Destination.Add(Source[I] + HTMLLineBreak); kommt oder nicht... |
Re: sowas wie Trim für TStrings?
ich hab die jedies nicht, deswegen war das eher geraten. schreib doch einfach den von den jedies damit das mit abgeändert wird in der nächsten version. und da du die sourcen hast kannst du es bei dir auch einfach ändern.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00: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