AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

sowas wie Trim für TStrings?

Ein Thema von Gambit · begonnen am 4. Mai 2005 · letzter Beitrag vom 4. Mai 2005
Antwort Antwort
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#1

sowas wie Trim für TStrings?

  Alt 4. Mai 2005, 16:32
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
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#2

Re: sowas wie Trim für TStrings?

  Alt 4. Mai 2005, 16:34
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 )
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#3

Re: sowas wie Trim für TStrings?

  Alt 4. Mai 2005, 16:41
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:

JvStringListToHtml.ConvertToHTMLStrings(RichEdit.Lines, aList); Trim(RichEdit.Lines.text); nützt da nix

muss ichs wohl nach der Konvertierung manuell rausschmeißen...
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#4

Re: sowas wie Trim für TStrings?

  Alt 4. Mai 2005, 16:51
Zitat von Gambit:
muss ichs wohl nach der Konvertierung manuell rausschmeißen...
Zum Beispiel...

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.
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#5

Re: sowas wie Trim für TStrings?

  Alt 4. Mai 2005, 16:57
ich brauche wohl noch etwas Verständnis zu einem RichEdit. Warum gibt mir zB. bei einem einzigen Buchstaben im RichEdit die Funktion

showMessage(IntToStr(length(aList.Text))); die Zahl 7 zurück, nachdem ich die Lines aus dem RichEdit in die Stringliste kopiert habe?
  Mit Zitat antworten Zitat
bigg
(Gast)

n/a Beiträge
 
#6

Re: sowas wie Trim für TStrings?

  Alt 4. Mai 2005, 17:18
Sollte doch so funktionieren:

Delphi-Quellcode:

procedure TrimStrings(const Strings: TStrings);
var i: Integer;
begin for i := 0 to Strings.Count -1 do
Strings[i] := Trim(Strings[i]);
end;
PS: Text muß immer wieder neu generiert werden, daher
dürfte die einfache Variante auch die langsamste sein.

Die obengenannte Version kann man sicherlich noch etwas optimieren.
(nicht getestet...)
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#7

Re: sowas wie Trim für TStrings?

  Alt 4. Mai 2005, 18:48
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:
result := '';
for i := 0 to Stringliste.Count - 1 do
  result := result + Stringliste.Strings[i] + #13#10;
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
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
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#8

Re: sowas wie Trim für TStrings?

  Alt 4. Mai 2005, 20:02
wo hast du die Routine denn jetzt hergenommen? Aber es stimmt schon, in dem Source von Jedi lautet der Teil so:

Delphi-Quellcode:
for I := 0 to Source.Count - 1 do
      Destination.Add(Source[I] + HTMLLineBreak);
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
kommt oder nicht...
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#9

Re: sowas wie Trim für TStrings?

  Alt 4. Mai 2005, 20:39
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:08 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