Re: Worte zählen im Memo
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]); |
Re: Worte zählen im Memo
Zitat:
|
Re: Worte zählen im Memo
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!? |
Re: Worte zählen im Memo
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 ;)
|
Re: Worte zählen im Memo
Kein ding, nur was war denn genau nun deine Aufgabe, bzw was behandelt ihr denn gerade im Unterricht!?
|
Re: Worte zählen im Memo
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. |
Re: Worte zählen im Memo
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 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:06 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