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:
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;
Freundliche Grüße