AGB  ·  Datenschutz  ·  Impressum  







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

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 2 von 2     12   
SimStar001

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

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 20: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
Benutzerbild von Meflin
Meflin

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

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 20:51
Zitat von SimStar001:
So die restliche Fehlersuche erspar ich mir, ich schreibe dir lieber gleich was richtiges
Gratulation, und wiedermal wurde solange dumm nachgefragt, bis jemand die kopierfähige Lösung präsentiert
  Mit Zitat antworten Zitat
SimStar001

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

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 20:59
Joah sorry, aber das war mir hier jetzt echt zu doof!

soll ers doch kopieren, verstehen tut ers wahrscheinlich eh net! Oder??? Kann ja meinen Code auch wieder löschen!?
Marco Tröger
  Mit Zitat antworten Zitat
hansdieter11

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

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 21:28
Ja sorry, aber ich habs erhlicherweise auch nur von meinem Lehrer kopiert, um es zu Hause dann zu verstehen. Doch wie ihr merkt, ich verstehe es nicht. Vielen Dank für den geposteten Code. Er funktioniert einwandfrei und ich verstehe ihn so endlich auch
  Mit Zitat antworten Zitat
SimStar001

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

Re: Worte zählen im Memo

  Alt 23. Mär 2009, 21:40
Kein ding, nur was war denn genau nun deine Aufgabe, bzw was behandelt ihr denn gerade im Unterricht!?
Marco Tröger
  Mit Zitat antworten Zitat
dsola

Registriert seit: 24. Mär 2009
1 Beiträge
 
Delphi 2005 Architect
 
#16

Re: Worte zählen im Memo

  Alt 24. Mär 2009, 08:31
Hi.
Maybe this helps.
Delphi-Quellcode:
unit Unit4;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm4 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.Button1Click(Sender: TObject);
var stList: TStringList;
    ss:string;
    WorteCount:integer;
    xx:integer;
begin
  stList := TStringList.Create;

  ss := Memo1.Text;
  ss:= StringReplace(ss,' ', #13#10, [rfReplaceAll]);

  stlist.Text := ss;
  WorteCount := stList.Count;

  ShowMessage('WorteCount is '+ IntToStr(WorteCount));

  FreeandNil(stList);
end;

end.
  Mit Zitat antworten Zitat
hansdieter11

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

Re: Worte zählen im Memo

  Alt 24. Mär 2009, 17:18
Aufgabe war, ein Programm zu schreiben, mit dem wir Wörter in einem Memo zählen können. Da ich die Version meines Lehrers nicht verstanden habe, wollte ich hier mal nachfragen. Heute haben wir function nochmal näher behandelt.
Viele Grüße
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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