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 TRichEdit - Leerzeichen vor Absatzende entfernen (https://www.delphipraxis.net/131027-trichedit-leerzeichen-vor-absatzende-entfernen.html)

taaktaak 17. Mär 2009 18:11


TRichEdit - Leerzeichen vor Absatzende entfernen
 
Moin, Moin.

Bisher als Marginalie eingeschätzt, entpuppt sich die Aufgabe für mich als unerwartet harte Nuss: Ich möchte überflüssige Leerzeichen vor Absatzenden entfernen. Nun, sollte kein Problem sein: Ich suche #13#10 bzw. #32#13#10 in Richedit.Text und eleminiert dann alle vor dieser Position stehenden Leerzeichen. Joo, funktioniert einwandfrei - nur leider ist danach jegliche Textformatierung verschwunden (obwohl ja nur die #32 gelöscht wurden). Ausweichen auf RichEdit.Lines ist (offenbar) keine Alternative, da in Lines die Absatzpositionen nicht enthalten sind.

Muss ich nun den RichEdit-Inhalt (also Text+Token) in einen Stream und dann in einen String kopieren um weiterzukommen, oder funktioniert das grundsätzlich anders. Sorry, bin etwas genervt, da ich für dieses Randproblem eigentlich gar keine Zeit habe.

Blackheart 18. Mär 2009 07:43

Re: TRichEdit - Leerzeichen vor Absatzende entfernen
 
Vieleicht hilft dir Trim.

angos 18. Mär 2009 07:54

Re: TRichEdit - Leerzeichen vor Absatzende entfernen
 
moin moin,

ich kann das problem nicht nachvollziehen. Ich nutze folgende Prozedur:

Delphi-Quellcode:
procedure RemoveBlanks(Richedit: TRichedit);
var i,c: integer;
begin
  for i := 0 to RichEdit.Lines.Count-1 do
    for c := Length(Richedit.Lines[i]) downto 1 do
    begin
      if Richedit.Lines[i][c] = ' ' then
        Richedit.Lines[i] := Copy(Richedit.Lines[i], 1, c-1)
      else
        Break;
    end;
end;

Gruß
Angos

worker 18. Mär 2009 08:11

Re: TRichEdit - Leerzeichen vor Absatzende entfernen
 
Eine Mischung aus Blackhearts und angos Vorschlägen ist Deine Lösung:
Delphi-Quellcode:
var
   i: Integer;
begin
   for i := 0 to RichEdit1.Lines.COunt - 1 do begin
      RichEdit1.Lines[i] := Trim(RichEdit1.Lines[i]);
   end;
end;

taaktaak 18. Mär 2009 11:35

Re: TRichEdit - Leerzeichen vor Absatzende entfernen
 
Tatsächlich, die Lösung im letzten Post funktioniert einwandfrei!
Vielen Dank :hi:


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