Einzelnen Beitrag anzeigen

luke2

Registriert seit: 17. Jun 2009
117 Beiträge
 
#1

Kann man diese Funktion noch weiter optimieren?

  Alt 15. Jul 2009, 16:24
Hallo,
Ich habe hier eine Funktion, um "Zeilen", also eigentlich nur Strings, die durch #13, #10 oder #13#10 getrennt sind, zu extrahieren.
Diese Funktion ist schon recht schnell, aber ich wollte mal fragen, ob jemand da noch eine Möglichkeit zur Optimierung erkennt.
Delphi-Quellcode:
function ExtractLinesFromBuffer(const ABuffer: string): Integer;
var
  pBuffer, pBegin: PChar;
  sLine : string;
begin
  Result := 0;
  pBuffer := PChar(ABuffer);
  while pBuffer^ <> #0 do
  begin
    pBegin := pBuffer;
    while not CharInSet(pBuffer^, [#0, #10, #13]) do Inc(pBuffer);
    SetString(sLine, pBegin, pBuffer - pBegin);
    //showmessage(sline); hier sline verarbeiten
    Inc(Result);
    if pBuffer^ = #13 then Inc(pBuffer);
    if pBuffer^ = #10 then Inc(pBuffer);
  end;
end;
MfG
  Mit Zitat antworten Zitat