Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi umfüllaufgabe (https://www.delphipraxis.net/34043-umfuellaufgabe.html)

TheAn00bis 16. Nov 2004 13:29


umfüllaufgabe
 
Hi, ich will in folgenden Code eine Kontrolle einbauen, die überprüft, ob eine Zeile mit selbem Inhalt im Memo-Feld bereits vorhanden ist:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

  procedure fuelleum(VAR von, nach :INTEGER; kapaznach : INTEGER);
    begin
     if von <= kapaznach-nach
      then
       begin
         nach := nach + von;
         von:= 0;
       end
      else
       begin
         von:= von - (kapaznach-nach);
         nach:= kapaznach;
       end;
    end;
begin
    kapaz1:=8;
    kapaz2:=5;
    kapaz3:=3;

    fass1:= strtoint(edit1.text);
    fass2:= strtoint(edit2.text);
    fass3:= strtoint(edit3.text);

    ziel1:=strtoint(edit4.text);
    ziel2:=strtoint(edit5.Text);
    ziel3:=strtoint(edit6.text);
    memo1.Lines.add(inttostr(fass1)+' '+inttostr(fass2)+' '+inttostr(fass3));
    repeat
      if fass3=Kapaz3
        then fuelleum(fass3,fass1, kapaz1)
        else if fass2 > 0
        then fuelleum(fass2, fass3, kapaz3)
        else fuelleum(fass1,fass2, kapaz2);


    memo1.Lines.add(inttostr(fass1)+' '+inttostr(fass2)+' '+inttostr(fass3));
    until
    (fass1=ziel1)And(fass2=ziel2)And(fass3=ziel3)Or[b](Schondrin=true);[/b]
   
end;

end.
Wenn die Zeile schon existiert soll Schondrin true sein, ansonsten falsch. Jetzt wollte ich eine for schleife einbauen, die jede Zeile des Memofeldes durchgeht und überprüft, ob diese gleich der ist, die jetzt geschrieben wird. Meine eigentlich Frage:

Wie kann ich überprüfen, wieviele Zeilen bereits geschrieben wurden? Also, welche die neuste ist.


Pls help :wink: - lol die smilies sind hier aber komisch :twisted: :mrgreen:

Steve 16. Nov 2004 13:40

Re: umfüllaufgabe
 
Hi,

TMemo.Lines.Count liefert die Anzahl der Zeilen (Index ist 0-basiert).

Gruß
Stephan :dance:

TheAn00bis 16. Nov 2004 13:49

Re: umfüllaufgabe
 
Cool, danke - ich dachte schon man müsste dafür auch erst eine Menge Code schreiben, um irgendwo eine Zählervariable einzubringen, aber das ist ja super!

Und wenn ich jetzt jede Zeile durchgehen und überprüfen will nwill kann ich das so machen:?

Delphi-Quellcode:
 for zeile:=1 TO (TMemo.Lines.Count) DO begin
       if memo1.lines.zeile==memo.lines.(TMemo.Lines.Count) Do schondrin:=false;
       end;
Ich denke die Syntax ist ein wenig falsch, wäre toll wenn mir jemand sagen könnte wie ich das berichtigen kann!

Steve 16. Nov 2004 13:54

Re: umfüllaufgabe
 
Delphi-Quellcode:
 if memo.Lines.IndexOf('Zu suchender Text')>=0 then Schondrin:=True;
oder so ähnlich...

Gruß
Stephan :dance:

Nikolas 16. Nov 2004 14:00

Re: umfüllaufgabe
 
So sollte der Code aussehen:
Delphi-Quellcode:
wenn du schauen willst, ob der string astring schon vorhanden ist:
astring:='TjaWoIsserDenn'

For zeile:=0 to memo1.lines.count-1 do
   if memo1.lines[i]= astring then
    begin
    schondrin:=true
    break; // SChleife wird abgebrochen
    end;
   else
    schondrin:= false;

DP-Maintenance 16. Nov 2004 14:03

DP-Maintenance
 
Dieses Thema wurde von "Sharky" von "Programmieren allgemein" nach "Object-Pascal / Delphi-Language" verschoben.
Und auch diese Frage gehört nicht zu "Programmieren Allgemein".

TheAn00bis 16. Nov 2004 14:11

Re: umfüllaufgabe
 
Hey DANKE!

Beide Codes gehen wohl, aber da Steves etwas kürzer war habe ich seinen genommen!
Aber tut mir ganz gut zu sehen, dass man es auch anders machen kann!

Das Programm klappt jetzt, hätte nie gedacht, dass man das so einfach realisieren kann!

P.S.: Super Forum!!! Ich konnte arnicht glauben wie schnell sich die Anzahl der Views ändert. Das in einem Forum von einer Entwicklungsumgebung, die ich immer für relativ schwach hielt. Es überascht schon, wie beliebt Delhi doch zu sein scheint.

Aber da die Moderatoren das hier ziemlich eng sehen (kommt mir zu mindest so vor - was bei einem Forum der Größe bestimmt auch MUSS ist) will ich nicht zu sehr ins OT kommen!

Thx...

/Edit: Sry, Shargy....


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 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