Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2
  Alt 28. Mai 2003, 17:17
Moin Gunnar,

ungetestet, aber so müsste es ganz gut gehen:

Delphi-Quellcode:
var
  iSrc : integer;
  iDest : integer;
  sBuffer : string;
  sResult : string;

begin
  sBuffer := Memo1.Text;
  sResult := StringOfChar(#32,length(sBuffer));
  iSrc := 1;
  iDest := 1;
  while iSrc <= length(sBuffer) do
  begin
    while (iSrc <= length(sBuffer)) and (sBuffer[iSrc] in [#00..#09,#11..#12,#14..#31]) do inc(iSrc);
    while (iSrc <= length(sBuffer)) and not (sBuffer[iSrc] in [#00..#09,#11..#12,#14..#31]) do
    begin
      sResult[iDest] := sBuffer[iSrc];
      inc(iSrc);
      inc(iDest);
    end;
  end;
  Memo1.Text := trimright(sResult);
end;
Sieht zwar aufwändig aus, hat aber den Vorteil weniger Stringoperationen, wodurch das Ganze recht schnell sein müsste.
Besonderes Augenmerk ist hierbei auf die Eigenschaft Text von TMemo zu legen, da diese bei jedem Aufruf erst aus den einzelnen Zeilen des Memos zusammengesetzt wird.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat