Einzelnen Beitrag anzeigen

Cyberstorm

Registriert seit: 23. Okt 2003
159 Beiträge
 
Delphi 2010 Architect
 
#5

Re: minni while schleife auf geschwindigkeit optimieren

  Alt 27. Jan 2009, 21:12
Zitat von himitsu:
nur mal ein kleiner Hinweis zum ursprünglichem Code:

bei z.B. diesem String "abc>def<xyz>" wär dein Code schön in einer Endlosschleife gelandet
statt dem Pos im Delete hättest du eher 'nen PosEx verwenden sollen.
wohl wahr, danke.


in dem code wahr noch ein kleiner fehler.
"SetLength(result, ResultIndex);" <-- da mussnoch 1 vom ResultIndex abgezogen werden, da ja nach dem letzten zeichen nochmal inkrementiert wird.

hier nochmal korrigiert:

Delphi-Quellcode:
function StripHTMLTags(const HTML: String): String;
var
  TagDepth, i, ResultIndex: Integer;
begin
  TagDepth:=0;
  ResultIndex:=1;
  SetLength(result, length(HTML));
  for i:=1 to length(HTML) do
    begin
        case HTML[i] of
          '<': inc(TagDepth);
          '>': if TagDepth > 0 then dec(TagDepth);
          else if TagDepth = 0 then
            begin
              result[ResultIndex]:=HTML[i];
              inc(ResultIndex);
            end;
        end;
    end;
  SetLength(result, ResultIndex - 1);
end;
  Mit Zitat antworten Zitat