Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

Re: Kann man diese Funktion noch weiter optimieren?

  Alt 15. Jul 2009, 20:00
Hier, 20-30% schneller.
Delphi-Quellcode:
function csExtractLinesFromBuffer(const ABuffer: string): Integer;
var
  pBuffer, pBegin: PChar;
  Ch : Char;
  sLine : string;
begin
  Result := 0;
  pBuffer := PChar(ABuffer);
  pBegin := pBuffer;
  while pBuffer^ <> #0 do begin
    while (pBuffer^ <> #13) and (pBuffer^<>#0) do inc (pBuffer);
    If pBuffer[1]=#10 Then begin
      SetString(sLine, pBegin, pBuffer - pBegin);
      //showmessage(sline); hier sline verarbeiten
      inc (pBuffer,2);
      Inc(Result);
      pBegin := pBuffer;
    end
    else begin
      SetString(sLine, pBegin, pBuffer - pBegin);
      //showmessage(sline); hier sline verarbeiten
      Inc(Result);
    end
  end
end;
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat