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
Antwort Antwort
Seite 1 von 2  1 2   
hansdieter11

Registriert seit: 26. Feb 2009
41 Beiträge
 
#1

Worte zählen im Memo

  Alt 23. Mär 2009, 19:08
Delphi-Quellcode:
var
  Form1: TForm1;
  ergebnis : Integer;

implementation

{$R *.DFM}

procedure TForm1.WorteInZeile(Sender: TObject);
var n : integer;
    WortEnde : boolean;
    nWorte : integer;

begin
  nWorte := 0;
  WortEnde := true;

  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;

procedure TForm1.Button1Click(Sender: TObject);
var n : integer;
    nWorte : integer;

begin
  for n := 0 to memo1.lines.count do
      begin
        nWorte := nWorte+WorteInZeile(memo1.lines[n]);
      end;

  button1.caption := inttostr(ergebnis);
end;

end.
Hallo zusammen,
ich habe ein Problem. Und zwar, wenn ich in einem Memo die Worte zählen möchte, dann meldet Delphi noch Fehler. Wäre nett, wenn mir jemand helfen könnte, möglichst schnell

Vielen Dank im Vorraus
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#2

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 19:12
WorteInZeile soll die Wörter in einer Zeile zählen. Du übergibst aber nirgends den Parameter, welche Zeile denn gezählt werden soll.

Außerdem solltest du das als function und nicht als procedure implementieren

Und drittens ist das:
Zitat:
dann meldet Delphi noch Fehler
keine Fehlerbeschreibung
  Mit Zitat antworten Zitat
hansdieter11

Registriert seit: 26. Feb 2009
41 Beiträge
 
#3

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 19:25
Naiv gefragt, aber unser Leherer hat das so projeziert: Was genau muss ich tun, um dem WorteInZeile ein Parameter zuzuordnen?

Eine for-Schleife? Und function hatte er auch angeschrieben, aber nun will Delphi oben bei type hinter dem Doppelpunkt bei der

function noch irgendwas:
Zitat:
ein Bezeichner erwartet, aber PUBLIC gefunden
Was ist zu tun ?

Vielen Dank im Vorraus
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#4

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 20:11
Den Teil in dem der Fehler ist hast du uns noch garnicht gezeigt ^^
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#5

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 20:15
Evtl nen ; (Simikolon) vergessen?

Wäre aber Hilfreich, wenn du uns den Code mit dem Fehler zeigst
  Mit Zitat antworten Zitat
Benutzerbild von bigben37
bigben37

Registriert seit: 19. Dez 2007
Ort: Freiburg
116 Beiträge
 
Delphi 2009 Professional
 
#6

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 20:18
Zitat von hansdieter11:
Und function hatte er auch angeschrieben, aber nun will Delphi oben bei type hinter dem Doppelpunkt bei der function noch irgendwas
Ja, eine Funktion gibt etwas zurück und hinter dem Doppelpunkt muss noch der Typ des Rückgabewerts definiert werden.
Allgemeiner Aufbau einer Funktion:

Delphi-Quellcode:
function [Name] ([Param1]: [Typ Param1]; [Param2]: [Typ Param2]...): [Typ Rückgabewert];
begin
  //Code
end;
Edit2: Mein 100. Beitrag
Benjamin
Optimismus ist nur ein Mangel an Information
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#7

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 20:23
Im übrigen hast du noch ganz andere Fehler drin: Deine Schleifen laufen alle 1 zu weit (du fängst bei Null zu zählen an, das letzte Element ist als n - 1 und nich n) und außerdem verwendest du die Variable n im selben Kontext für zwei verschiedene Sachen. Das kann nicht gutgehen.
  Mit Zitat antworten Zitat
hansdieter11

Registriert seit: 26. Feb 2009
41 Beiträge
 
#8

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 20:39
Delphi-Quellcode:
var
  Form1: TForm1;
  ergebnis : Integer;

implementation

{$R *.DFM}

function TForm1.WorteInZeile(Sender: TObject): integer;
var n : integer;
    WortEnde : boolean;
    nWorte : integer;

begin
  nWorte := 0;
  WortEnde := true;

  for n := 0 to length(memo1.lines(n)) do //hier meckert Delphi: Operator oder Semikolon fehlt
    begin
      if WortEnde = true and (StrZeile[n] <> '') //hier meckert Delphi: Undifinierter Bezeichner: 'StrZeile'
      then //hier meckert Delphi: Operator ist auf diesem Operandentyp nicht anwendbar
        begin
          WortEnde := false;
          nWorte := nWorte+1;
        end
      else
        if not WortEnde and (StrZeile[n] = '')
        then //hier meckert Delphi: Operator ist auf diesem Operandentyp nicht anwendbar
          begin
            WortEnde := true;
          end;
      end;

    ergebnis := nWorte;
end;

procedure TForm1.Button1Click(Sender: TObject);
var n : integer;
    nWorte : integer;

begin
  for n := 0 to memo1.lines.count do
      begin
        nWorte := nWorte+WorteInZeile(memo1.lines[n]); //hier meckert Delphi: Inkompatible Typen: 'TObject' und 'String'
      end;

  button1.caption := inttostr(ergebnis);
end;

end.
Ich komme überhaupt nicht weiter. Wäre froh über direkte Verbesserung der Fehler, dann werde ich es sicher auch besser verstehen

Vielen Dank im Vorraus
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#9

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 20:47
Delphi-Quellcode:
var
  Form1: TForm1;
  ergebnis : Integer;

implementation

{$R *.DFM}

function TForm1.WorteInZeile(Sender: TObject): integer;
var n : integer;
    WortEnde : boolean;
    nWorte : integer;

begin
  nWorte := 0;
  WortEnde := true;

  for n := 0 to length(memo1.lines(n)) do //hier meckert Delphi: Operator oder Semikolon fehlt
                                           // es muss auch lines[n] heißen, außerdem meinst du sicherlich NICHT das n das auch gleichzeitig Schleifenvariable ist
    begin
      if WortEnde = true and (StrZeile[n] <> '') //hier meckert Delphi: Undifinierter Bezeichner: 'StrZeile'
                                                  //Du hast StrZeile ja auch nirgends definiert!
      then //hier meckert Delphi: Operator ist auf diesem Operandentyp nicht anwendbar
        begin
          WortEnde := false;
          nWorte := nWorte+1;
        end
      else
        if not WortEnde and (StrZeile[n] = '')
        then //hier meckert Delphi: Operator ist auf diesem Operandentyp nicht anwendbar
              // StrZeile ist unbekannt und kann somit auch nicht verglichen werden
          begin
            WortEnde := true;
          end;
      end;

    ergebnis := nWorte;
end;

procedure TForm1.Button1Click(Sender: TObject);
var n : integer;
    nWorte : integer;

begin
  for n := 0 to memo1.lines.count do
      begin
        nWorte := nWorte+WorteInZeile(memo1.lines[n]); //hier meckert Delphi: Inkompatible Typen: 'TObject' und 'String'
                                                        //WorteInZeile erwartet als Parameter ein Objekt (Sender), du übergibst ihm einen string. Funktioniert halt nicht
      end;

  button1.caption := inttostr(ergebnis);
end;

end.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 20:47
function TForm1.WorteInZeile(str: string): integer;
for n := 1 to length( str) do       if (WortEnde) and (StrZeile[n] <> '') //hier meckert Delphi: Undifinierter Bezeichner: 'StrZeile' Was ist StrZeile? / Wo hast du das deklariert?
if (not WortEnde) and (StrZeile[n] = '')
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

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 15:28 Uhr.
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