Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.150 Beiträge
 
Delphi 12 Athens
 
#14

AW: Zeilen in einem String zählen

  Alt 8. Mai 2012, 17:21
Leztere zählt nur CRLF (#13#10).

Erstere beachtet #10 (Linux), #13 (Mac) und #13#10 (Windows).
Und sieh zählt korrekt.
- leerer String = keine Zeile / könnte man aber auch als eine Leerzeile betrachten
- kein Zeilenumbruch = 1 Zeile
- 1 Zeilenumbruch = 2 Zeilen
- 2 Zeilenumbrüche = 3 Zeilen
- 3 Zeilenumbrüche = 4 Zeilen
- ...

Und in Bezug auf die #0, gibt es einen Unterschied.
Bei PChar ist dort Schluß, während der Delphi-String theoretisch noch weitergehn könnte.


Direkt als String (ohne PChar):
Delphi-Quellcode:
function CountLines(const aString: string): Integer;
var
  i: Integer;
begin
  if aString <> 'then begin
    Result := 1;
    i := 1;
    while i <= Length(aString) do
      if aString[i] = #13 then begin
        Inc(Result);
        if (i < Length(aString)) and (aString[i + 1] = #10) then
          Inc(i);
      end else if aString[i] = #10 then
        Inc(Result);
  end else
    Result := 0;
end;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 8. Mai 2012 um 17:29 Uhr)
  Mit Zitat antworten Zitat