Re: SynEdit Zählproblem
Zitat:
Wie kann ich das mit Ganzzahlarithmetik lösen?? mfg gauggi |
Re: SynEdit Zählproblem
Ok, du kennst die Länge des Textes und die Anzahl der Zeilen. Zudem weißt du, daß für jede Zeile ein Zeilenwechsel (#13#10) mitgezählt wird, der dich aber nicht interessiert. Christopher hat dann noch bemerkt, daß die SynEdit-Komponente möglicherweise einen Zeilenwechsel zusätzlich einfügt.
Daraus sollte sich doch eine einfache Formel ableiten lassen, oder? Gruß Hawkeye |
Re: SynEdit Zählproblem
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:16 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz