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
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
Comment