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;