AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Wörter zählen

Ein Thema von Lisa.99 · begonnen am 27. Feb 2017 · letzter Beitrag vom 6. Mär 2017
Antwort Antwort
Seite 1 von 2  1 2      
Lisa.99

Registriert seit: 13. Feb 2017
21 Beiträge
 
#1

AW: Wörter zählen

  Alt 6. Mär 2017, 07:21
Bei mir zählt er leider immer nur zwei Wörter, egal wie viele es sind und finde dabei den Fehler auch nicht

procedure TForm1.Button2Click(Sender: TObject);
var i, woerter : integer;
text : string;
begin
woerter:= 1;
for i := 0 to length (text) do
begin
inc(woerter);
continue;
end;
Edit3.Text:= inttostr(woerter);
end;
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Wörter zählen

  Alt 6. Mär 2017, 07:41
Wie oben bereits beschrieben ist deine Variable Text leer.

Du setzt den Startwert auf 1, zählst in deiner Schleife sofort 1 hoch: Ergebnis ist 2.

Wie ebenfalls bereits oben beschrieben zählst du nicht die Wörter sondern die Anzahl Zeichen. Also solltest du in deiner Schleife nur dann hochzählen, wenn ein Leerzeichen ausgewertet wird. Continue ist hier überflüssig! Sorge mit Trim noch dafür das weder am Anfang noch am Ende deines Strings Leerzeichen stehen (Trailing-Spaces). Dann kannst du die naheliegende Variante verwenden, indem du jedes Zeichen Text[i] auf Space / Leerzeichen auswertest.

Diese "naive" Variante kannst du dann wie oben bereits angezeigt, verfeinern und um die Zeichen erweitern, die ebenfalls zur Trennung von Worten führen. Beispielroutine ist ungetestet.

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
var i, woerter : integer;
    text : string;
begin
  woerter:= 0;
  text := Trim('Dies ist ein kurzer Text') // Trailing-Spaces entfernen;
  for i := 1 to length (text) do
  begin
    if text[i] = ' then
      inc(woerter);
// continue; // überflüssig!
  end;
  // das letzte Wort mitnehmen
  inc(woerter);
  Edit3.Text:= inttostr(woerter);
end;
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Lisa.99

Registriert seit: 13. Feb 2017
21 Beiträge
 
#3

AW: Wörter zählen

  Alt 6. Mär 2017, 07:52
verstanden habe ich, was mein Fehler war, nur leider funktioniert es immer noch nicht, entweder er gibt mir 0 oder 1 aus.
  Mit Zitat antworten Zitat
Benutzerbild von Sherlock
Sherlock

Registriert seit: 10. Jan 2006
Ort: Offenbach
3.821 Beiträge
 
Delphi 12 Athens
 
#4

AW: Wörter zählen

  Alt 6. Mär 2017, 08:01
Hast Du Dir eigentlich auch nur einen der Lösungsvorschläge angesehen?

Sherlock
Oliver
Geändert von Sherlock (Morgen um 16:78 Uhr) Grund: Weil ich es kann
  Mit Zitat antworten Zitat
Lisa.99

Registriert seit: 13. Feb 2017
21 Beiträge
 
#5

AW: Wörter zählen

  Alt 6. Mär 2017, 08:03
Ich habe mir alle angesehen, nur leider verstehe ich die wenigsten und möchte gerne die Lösungen nutzen, die ich auch nachvollziehen kann. Vieles haben wir nämlich in der Schule nicht gelernt.
  Mit Zitat antworten Zitat
Benutzerbild von mikhal
mikhal

Registriert seit: 11. Sep 2003
Ort: Linz am Rhein
796 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Wörter zählen

  Alt 6. Mär 2017, 08:06
Deshalb habe ich meine Routine auf deinen Ansatz erweitert. Sie sollte einwandfrei funktionieren, auch wenn ich sie immer noch nicht getestet habe.

Grüße
Mikhal
Michael Kraemer
Computer erleichtern die Arbeit...
...und die Erde ist eine Scheibe!
  Mit Zitat antworten Zitat
Lisa.99

Registriert seit: 13. Feb 2017
21 Beiträge
 
#7

AW: Wörter zählen

  Alt 6. Mär 2017, 16:22
text := Trim('Dies ist ein kurzer Text')
Was hat das in den Klammern zu stehende zu bedeuten?
Verstanden habe ich, dass das Trim die Leerzeichen am Satzanfang und -ende verfallen lässt.
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#8

AW: Wörter zählen

  Alt 6. Mär 2017, 16:28
text := Trim('Dies ist ein kurzer Text')
Was hat das in den Klammern zu stehende zu bedeuten?
Verstanden habe ich, dass das Trim die Leerzeichen am Satzanfang und -ende verfallen lässt.
Gar nichts denn hier Trim zu verwenden bei diesen Satz ist Blödsinn.
Es wäre etwas anderes wenn er so geschrieben wäre.


text := Trim(' Dies ist ein kurzer Text');

Das Ergebnis wäre dann wie du schon sagst der gleiche Text ohne die beiden Leerzeichen am Anfang.


gruss
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#9

AW: Wörter zählen

  Alt 6. Mär 2017, 08:12
verstanden habe ich, was mein Fehler war, nur leider funktioniert es immer noch nicht, entweder er gibt mir 0 oder 1 aus.
Dann wäre es sinnvoll Deinen Sourcecode (mit Berichtigungen) zu posten. Und wenn Du das Helmsymbol dabei nutzt, wird es auch leserlicher.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.553 Beiträge
 
Delphi 12 Athens
 
#10

AW: Wörter zählen

  Alt 6. Mär 2017, 09:21
Bei mir zählt er leider immer nur zwei Wörter, egal wie viele es sind und finde dabei den Fehler auch nicht

procedure TForm1.Button2Click(Sender: TObject);
var i, woerter : integer;
text : string;
begin
woerter:= 1;
for i := 0 to length (text) do
begin
inc(woerter);
continue;
end;
Edit3.Text:= inttostr(woerter);
end;
Sorry, ich klinke mich ab jetzt aus jeglichen Themen aus.

Zitat:
Das habe ich und für wenige Wörter funktioniert das!
Erst behauptest du das funktioniert.
Ich hatte bereits in Antwort #7 gezeigt, dass ich es nicht wirklich glauben kann, hab dort bereits die Gründe/Fehler genannt
und jetzt heißt es, dass es doch nicht funktioniert?

Es wäre gut, wenn du dir Antworten vielleicht auch durchliest.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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