(Moderator)
Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
Delphi 2007 Enterprise
|
Re: Kann man diese Funktion noch weiter optimieren?
15. Jul 2009, 21: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")
|
|
Zitat
|