Announcement

Collapse
No announcement yet.

Zahlen in erste Tabelle eingeben in der zweiten addieren

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Zahlen in erste Tabelle eingeben in der zweiten addieren

    Hallo,
    ich bin gerade dabei ein Programm, zur eigenen Freude, zu entwickeln das zuvor eingebene Zahlen auf ihr Vorkommen untersucht. Soweit habe ich das Programm fertig. Ich möchte nun die ermittelten Zahlen auch zählen. Also ist eine Zahl vorhanden so soll in der TableAddZahl Tabelle der Wert für Zahl 15 auf 1 stehen. Wird die Zahl beim nächsten mal wieder gefunden der Wert 2 usw. Ist die Zahl 16 vorhanden, zum erstenmal soll der Wert 1 eben in der TableAddZahl Tabelle eingetragen werden. Das gelingt mir auch mit der unten aufgeführten gekürzten Procedure:

    procedure TWochenForm.B_SpeichernClick(Sender: TObject);
    begin

    WochenForm.EditW_Nr.SetFocus;

    WochenForm.W_Zahlen.Open;

    WochenForm.W_Zahlen.Append;

    WochenForm.W_ZahlenWochen_Nr.Value := StrToInt(WochenForm.EditW_Nr.Text);

    WochenForm.W_ZahlenErste_Z.Value := StrToInt(WochenForm.EditZ_1.Text);

    WochenForm.W_ZahlenZweite_Z.Value := StrToInt(WochenForm.EditZ_2.Text);

    WochenForm.W_ZahlenDritte_Z.Value := StrToInt(WochenForm.EditZ_3.Text);

    //soll bis 6 gehen

    //in der Tabelle W_Zahlen werden die eingegebenen Zahlen gespeichert

    WochenForm.W_Zahlen.Post;

    //soll von 1 bis 49 gehen

    if (StrToInt(WochenForm.EditZ_1.Text) = 15)

    or (StrToInt(WochenForm.EditZ_1.Text) = 16)

    or (StrToInt(WochenForm.EditZ_1.Text) = 17)

    then

    begin

    ZahlenAddForm.TableZahlAdd.Open;

    ZahlenAddForm.TableZahlAdd.Edit;

    end;

    //hier müsste ich 49 if Anweisungen schreiben

    //Edit_1.Text bis 49

    //und das ganze für Edit_2.Text nochmal usw.

    if (StrToInt(WochenForm.EditZ_1.Text) = 15)

    then begin

    ZahlenAddForm.TableZahlAddZahl_15.Value :=

    ZahlenAddForm.TableZahlAddZahl_15.Value + 1;

    //in der Spalte ZahlAdd_15 wird die 1 eingetragen

    ZahlenAddForm.TableZahlAdd.Post;

    end;

    if (StrToInt(WochenForm.EditZ_1.Text) = 16)

    then begin

    ZahlenAddForm.TableZahlAddZahl_16.Value :=

    ZahlenAddForm.TableZahlAddZahl_16.Value + 1;

    ZahlenAddForm.TableZahlAdd.Post;

    end;

    if (StrToInt(WochenForm.EditZ_1.Text) = 17)

    then begin

    ZahlenAddForm.TableZahlAddZahl_17.Value :=

    ZahlenAddForm.TableZahlAddZahl_17.Value + 1;

    ZahlenAddForm.TableZahlAdd.Post;

    end;

    end;

    meine Frage wäre: Gibt es eine elegantere Lösung als soviele If-Anweisungen zu schreiben.
    Ich bin ständig am ausprobieren. Kann mir jemand zu dieser Angelegenheit einen Tip geben?
    Danke ph

  • #2
    <html>

    <head>
    <meta http-equiv="Content-Type"
    content="text/html; charset=iso-8859-1">
    <meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
    <title>Normale Seite ohne Titel</title>
    </head>

    <body bgcolor="#FFFFFF">

    <p>Hallo Peter,</p>

    <p>in dem folgenden Beispiel habe ich beide Informationen (eingegebene
    Zahl sowie den Wiederholungszähler) in einer Tabelle gespeichert.
    Die Tabelle besteht aus den Spalten Zahl und Anzahl.</p>

    <p>&nbsp;</p>

    <pre><strong>procedure TForm1.Button1Click(Sender: TObject);
    var
    eingegebene_Zahl: integer;
    begin
    try
    eingegebene_Zahl := strtoint(edit1.text);
    except
    exit; </strong><font color="#FF0000"><strong>{falls im Edit-Feld keine Zahl steht abbrechen}</strong></font><strong>
    end;
    if table1.findkey([eingegebene_Zahl]) then begin
    Table1.Edit;
    table1['anzahl'] := table1['anzahl'] + 1;
    end
    else begin
    table1.append;
    table1['zahl'] := eingegebene_Zahl;
    table1['anzahl'] := 1;
    end;
    table1.post;
    end;</strong></pre>

    <p><strong></strong>&nbsp;</p>

    Tschüß

    <p>Torsten</p>
    </body>
    </html&gt

    Comment


    • #3
      Hallo Torsten,

      vielen Dank für Deine Hilfe, damit ist mein Problem gelöst.

      p

      Comment

      Working...
      X