Thema: Delphi SynEdit Zählproblem

Einzelnen Beitrag anzeigen

bigg
(Gast)

n/a Beiträge
 
#13

Re: SynEdit Zählproblem

  Alt 27. Mai 2006, 16:31
Wenn man die Gesamtlänge aller Zeilen und Zeichen zählen möchte, braucht man nur das Zeilenumbruchformat kennen. Synedit besitzt momentan 3 Umbruchformate (Windows, Unix, Mac). Mod's von Synedit unterstützen noch weitere Formate.

Diese Funktion wurde für die ANSI-Variante geschrieben:

Delphi-Quellcode:
function GetSpaceLength(const Editor: TSynEdit): Integer;
var i, Lines: Integer; var f: Byte;
begin
  Result := 0;

  if Editor <> nil then
  begin
    Lines := Editor.Lines.Count;

    if TSynEditStringList(Editor.Lines).FileFormat = sffDos then
    f := 2 else f := 1; // DOS bricht mit 2 Zeichen um, MAC und UNIX jeweils mit einem Zeichen

    Result := (Lines * f); // Zeichen für die Zeilenumbrüche errechnen

    if Lines <> 0 then // bei nur einer Zeile
    dec(Result, f); 2 bzw. 1 Byte abziehen

    for i := 0 to Lines -1 do // Alle Zeichen alle Zeilen zählen
    inc(Result, Length(Editor.Lines[i]));
  end;
end;
  Mit Zitat antworten Zitat