Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Zeichen im Memo zählen (https://www.delphipraxis.net/82191-zeichen-im-memo-zaehlen.html)

_Jack_ 8. Dez 2006 12:23


Zeichen im Memo zählen
 
Ahoi,

wie kann ich die Zeichen aus dem Memo zählen?

Geht es auch ohne Schleife?

MFG

EDatabaseError 8. Dez 2006 12:26

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

Bernhard Geyer 8. Dez 2006 12:29

Re: Zeichen im Memo zählen
 
Length(Memo.Lines.Text)

Wenn Du die Zeilenumbrüche rausrechnen willst Memo.Lines.Count abziehen

raiguen 8. Dez 2006 12:44

Re: Zeichen im Memo zählen
 
Zitat:

Zitat von Bernhard Geyer
Length(Memo.Lines.Text)

Wenn Du die Zeilenumbrüche rausrechnen willst Memo.Lines.Count abziehen

Würde sagen: 2 mal Memo.Lines.Count abziehen, da ja bekanntermassen ein ZeilenUmbruch aus #10#13 - somit 2 Zeichen - besteht...

3_of_8 8. Dez 2006 13:23

Re: Zeichen im Memo zählen
 
Richtig, außer man kompiliert für Linux.

DP-Maintenance 8. Dez 2006 15:17

DP-Maintenance
 
Dieses Thema wurde von "Christian Seehase" von "Programmieren allgemein" nach "Sonstige Fragen zu Delphi" verschoben.
Hat mit Delphi zu tun.

Sidorion 8. Dez 2006 15:28

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.

Christian Seehase 8. Dez 2006 15:46

Re: Zeichen im Memo zählen
 
Moin Rainer,

der Zeilenumbruch ist #13#10.

marabu 8. Dez 2006 19:26

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:
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

raiguen 8. Dez 2006 20:33

Re: Zeichen im Memo zählen
 
Zitat:

Zitat von Christian Seehase
Moin Rainer,

der Zeilenumbruch ist #13#10.

Moin Christian...
jo, ist klar... sorry, ein kleiner 'Zahlendreher' meinerseits ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:49 Uhr.
Seite 1 von 2  1 2      

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