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