![]() |
Zeichen im Memo zählen
Ahoi,
wie kann ich die Zeichen aus dem Memo zählen? Geht es auch ohne Schleife? MFG |
Re: Zeichen im Memo zählen
Um ne schleife wirst du IMHO nicht kommen...
Du musst einfach aus jeder Line die Zeichen zählen. schau dir mal Memo.Count und Memo.Lines[i].Lenght an. Mfg Tobi |
Re: Zeichen im Memo zählen
Length(Memo.Lines.Text)
Wenn Du die Zeilenumbrüche rausrechnen willst Memo.Lines.Count abziehen |
Re: Zeichen im Memo zählen
Zitat:
|
Re: Zeichen im Memo zählen
Richtig, außer man kompiliert für Linux.
|
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Hat mit Delphi zu tun. |
Re: Zeichen im Memo zählen
Dabei muss man allerdings beachten, dass man sowohl bei Zugriff auf Lines, asauch bei Text eine eventuelle RTF-Formatierung veriert. Daher vorher in einen MemoryStream speichern, Länge ermitteln und dann zurücklesen.
|
Re: Zeichen im Memo zählen
Moin Rainer,
der Zeilenumbruch ist #13#10. |
Re: Zeichen im Memo zählen
Hallo Leute,
#13#10 heißt bei mir sLineBreak - da kann man sich kaum vertun. Wenn wirklich die Speichergröße des Memo-Textes bestimmt werden soll, dann ist Length(Memo.Text) verführerisch kompakter Code. Allerdings muss Text erst wieder aus den einzelnen Lines zusammengebaut werden, weshalb das Aufsummieren der Zeilenlängen eventuell schneller und speicherplatz-ökonomischer ist. Aber vielleicht geht es gar nicht um die Bestimmung des Größe des Textes, sondern um das Zählen der einzelnen Zeichen:
Delphi-Quellcode:
Freundliche Grüße
type
TFreq = array [Char] of Cardinal; procedure CountChars(const s: String; var freq: TFreq); var i: Integer; begin for i := 1 to Length(s) do Inc(freq[s[i]]); end; procedure TDemoForm.ButtonClick(Sender: TObject); var Freq: TFreq; i: Integer; begin FillChar(Freq, SizeOf(Freq), 0); with Memo do for i := 0 to Pred(Lines.Count) do CountChars(Lines[i], Freq); end; |
Re: Zeichen im Memo zählen
Zitat:
jo, ist klar... sorry, ein kleiner 'Zahlendreher' meinerseits ;) |
Re: Zeichen im Memo zählen
Zitat:
|
Re: Zeichen im Memo zählen
Moin Hansa,
Delphi-Quellcode:
var
sl : TStringList; begin sl := TStringList.Create; try sl.Text := 'hallo'#10#13'test'; ShowMessage(IntToStr(sl.Count)); sl.Text := 'hallo'#13#10'test'; ShowMessage(IntToStr(sl.Count)); finally sl.Free; end; end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz