AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Worte zählen im Memo

Worte zählen im Memo

Ein Thema von hansdieter11 · begonnen am 23. Mär 2009 · letzter Beitrag vom 24. Mär 2009
 
SimStar001

Registriert seit: 18. Jan 2008
594 Beiträge
 
#11

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 19:48
ganz ehrlich, ohen dir zu nahe treten zu wollen, aber dein Code ist totaler bullshit.

Dein Code:
Delphi-Quellcode:

//1. du hast hier eine Procedure, willst aber einen Wert, nämlich die Anzahl der Worte in der Zeile erhalten, also nimm
// eine Function

// 2. du musst immer entweder einen String (Zeile), oder eben die Zeilennummer an die Function übergeben, das geschieht hier jedoch nicht.
procedure TForm1.WorteInZeile(Sender: TObject);
var n : integer;
    WortEnde : boolean;
    nWorte : integer;

begin
  nWorte := 0;
  WortEnde := true;

  // ganz grober Fehler: wenn du einen Zeilenindex übergibst, darf dieser nicht die Zählvariable sein also nimm zum Zählen was anderes, z.b. i
  for n := 0 to length(memo1.lines(n)) do
    begin
      if (WortEnde = true) and (StrZeile[n] <> '')
      then
        begin
          WortEnde := false;
          nWorte := nWorte+1;
        end
      else
        if not WortEnde and (StrZeile[n] = '')
        then
          begin
            WortEnde := true;
          end;
      end;

    ergebnis := nWorte;
end;

So die restliche Fehlersuche erspar ich mir, ich schreibe dir lieber gleich was richtiges:


Delphi-Quellcode:

function CountWordsInLine(LineText : string) : integer;
var position: integer;
begin
  result := 0;

  if LineText = 'then
    exit;

  repeat

  position := pos(' ',LineText);
  if position > 0 then
    begin
    LineText := copy(LineText,position + 1,length(LineText));
    inc(result);
    end
      else
        if length(LineText) > 0 then
          inc(result);
    
  until (position = 0);
end;
Delphi-Quellcode:
//Aufruf der Function

var Woerter , i: integer;
.
.
.
Woerter := 0;
if Memo1.lines.count > 0 then
  for i := 0 to high(Memo1.lines) do
    Woerter := Woerter + CountWordsInLine(Memo1.lines[i]);
Marco Tröger
  Mit Zitat antworten Zitat
 

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:37 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