Einzelnen Beitrag anzeigen

Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.119 Beiträge
 
Delphi 11 Alexandria
 
#4
  Alt 4. Mai 2003, 16:41
Moin TheOmega,

so dürfte das schneller gehen:

Delphi-Quellcode:
function HTMLSpecialChars(const AsHTMLFile : string) : string;

var
  i : integer;
  iLen : integer;
  pSrc : PChar;
  pDest : PChar;

begin
  // erforderliche Buffergrösse ermittlen
  iLen := 0;
  for i := 1 to length(AsHTMLFile) do
  begin
    case AsHTMLFile[i] of
      '<','>' : inc(iLen,4);
      '&' : inc(iLen,5);
      //... und so weiter für jedes Zeichen
      else inc(iLen);
    end;
  end;
  // Buffer initialisieren
  Result := StringOfChar(#32,iLen);
  pSrc := @AsHTMLFile[1]; // oder PChar(AsHTMLFile);
  pDest := PChar(Result); // oder @Result[1];
  for i := 1 to length(AsHTMLFile) do
  begin
    case pSrc^ of
      '<' : begin
        StrLCopy(pDest,'&',4);
        inc(pDest,4);
      end;
      '>' : begin
        StrLCopy(pDest,'&',4);
        inc(pDest,4);
      end;
      '&' : begin
        StrLCopy(pDest,'&',5);
        inc(pDest,5);
      end;
      //... und so weiter für jedes Zeichen
      else begin
        pDest^ := pSrc^;
        inc(pDest);
      end;
    end;
    inc(pSrc);
  end;
end;
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