Du hast deine Variablendeklaration vergessen, aber notfalls kann man auch die Variable einfach weglassen.
Delphi-Quellcode:
function CountStringLines(const S: String): Integer;
begin
with TStringList.Create do
try
Text := S;
Result := Count;
finally
Free;
end;
end;
function CountStringLines(const S: String): Integer;
begin with TStringList.Create do try Text:=S; Result:=Count; finally Free; end; end;
Aber wenn es auf Geschwindigkeit und Speicherverbraucht drauf ankommt, dann geht der Trick mit der Stringliste nicht wirklich,
denn da mußt du mit einigen Speicheroperationen (speicher für die Liste und vorallem die Strings reservieren + Freigeben) und dazu ist mit mindestens nochmals 100% des Stringsspeichers zu rechnen. (bei einem TStream als Quelle anstatt einem String, sogar mit locker zusätzlichen 300%)
Delphi-Quellcode:
function CountLines(const S: string): Integer;
var
P: PChar;
begin
if S <> '' then begin
Result := 1;
P := PChar(S);
while P^ <> #0 do begin
if P^ = #13 then begin
Inc(Result);
if (P + 1)^ = #10 then
Inc(P);
end else if P^ = #10 then
Inc(Result);
Inc(P);
end;
end else
Result := 0;
end;