Moin! Ich bin Anfänger in Sachen Delphi, und stehe im Moment vor einem kleineren Problem: Mein "NotePad" soll die Anzahl der Zeichen zählen, es soll nicht mehr als alle Zeichen minus alle Zwischenräume anzeigen in den "Dokumenten-Informationen".
Um solche Infos rauszufinden wird der Inhalt der Memo in einen String gepackt, und der wird durchgelaufen...
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33:
| procedure Tstatform.FormActivate(Sender: TObject); Const LovBogs : set of Char = ['A'..'Z','0'..'9']; Var MemoStr : String; i, AntalOrd, AntalLinier, AntalTegn : Integer; space : Boolean;
begin
MemoStr := UpperCase(mainform.Memo1.Text); space := True; AntalOrd := 0; AntalTegn := 0; For i := 1 to Length(MemoStr) do begin if MemoStr[i] In LovBogs then begin if space = true then begin Inc(AntalOrd); space := false; end; end else space := true; if MemoStr[i] <> ' ' then Inc(AntalTegn); // if MemoStr[i] = '/' then // if MemoStr[i + 1] = 'n' then // Dec(AntalTegn,2); end;
AntalLinier := mainform.Memo1.Lines.Count;
Label1.Caption := IntToStr(AntalOrd); Label2.Caption := IntToStr(AntalTegn); Label3.Caption := IntToStr(AntalLinier);
end; |
das Problem ist nun die Berechnung der Zeichen. Denn mit der jetztigen Prozedur zählt er für jeden Zeilenwechsel zwei extra Zeichen. Für jede Line 2 Zeichen abzuziehen geht allerdings nicht, denn wenn in der Memo eine Linie ganz leer ist, dann wird sie nicht gecounted
Wie kann ich nun die wirkliche Anzahl der Linien herausfinden?
MfG: Hansano