Veröffentlicht 30. September 200222 j Ich habe mal wieder doofe Probleme und komme nicht weiter: die erste Schleife soll mein Array ( Bool nContainerHBT[5][5][5] ) komplett auf false setzen, die Schleife läuft zum ersten erst gar nicht, sondern der Rattert so hindurch. die zweite schleife soll je nachdem wie groß mEingabe* ist x-mal durchlaufen, geht auch nicht- wenn ich es im debugger ausführe hängt das Programm sich auf, bzw. läuft endlos, wenn ich den Debugger dann anhalte kommt die Disassemblierung (was auch immer ich damit anfangen soll), da kann ich dann Stundenlang runterscrollen und sehe nur eine ansteigende Zahl. ich kapier das leider alles nicht so richtig und langsam nervt mich das alles an, seit tagen probier ich rum und habe nur probleme CODE: void CContainerDlg::OnOK() { H=1; B=1; T=1; for(H;H<=5; H++); //Im Array Bool nContainer[5][5][5] alles auf false setzen { nContainerHBT[H][T]=(false); for(B;B<=5; B++); { nContainerHBT[H][T]=(false); for(T;T<=5; T++); { nContainerHBT[H][T]=(false); } } } H=1; B=1; T=1; UpdateData(true); for(H;H<=m_EingabeH; H++); //je nach Eingabe das Array auf true setzen { nContainerHBT[H][T]=(true); for(B;B<=m_EingabeB; B++); { nContainerHBT[H][T]=(true); for(T;T<=m_EingabeT; T++); { nContainerHBT[H][T]=(true); } } } //CDialog::OnOK(); }
30. September 200222 j Hi, ich würde die Semikolons hinter den for Schleifen weglassen. Spaß beiseite, hinter for,do, if usw kommt kein Semikolon weil die Anweisung ja hier normalerweise nicht beendet ist, sondern eine Schleife eingeleitet werden soll. Gruß wasweißich
30. September 200222 j Du solltest hinter jeder for-Zeile das Semikolon wegnehmen. Dann laufen zumindestens die for-Schleifen an. HTH Jan [wasweißich war schneller...]
30. September 200222 j Weitere Anmerkungen: Zulässige Indizes für Arrays gehen von 0 bis (Größe - 1), nicht von 1 bis Größe. Hier also von 0 bis 4.Bei einer verschachtelten Schleife dieser Art muss die Zuweisung nur einmal auftauchen, in der innersten Schleife.Es gibt keinen Grund, true und false in Klammern zu setzen.Du muss irgendwie sicherstellen, dass die drei m_Eingabe-Variablen gültige Werte enthalten. Möglicherweise hast Du das im Klassenassistenten gemacht, kann ich nicht sagen.Wenn diese Methode nicht den Dialog beenden soll, dann solltest Du einen anderen Namen wählen, anstatt OnOK zu überschreiben, ohne CDialog::OnOK() aufzurufen.
30. September 200222 j ICH BEISS MIR INS KNIE. das läuft - seit Tagen endlich mal ein ergebnis. *g*Periode Danke Jungs! CODE - Nach den Änderungen: void CContainerDlg::OnTestbutton() { H=0; B=0; T=0; for(H;H<=5; H++) //Im Array Bool nContainer[5][5][5] alles auf false setzen { for(B;B<=5; B++) { for(T;T<=5; T++) { nContainerHBT[H][T]=false; } } } H=0; B=0; T=0; m_EingabeH=3; m_EingabeB=3; m_EingabeT=3; for(H;H<=m_EingabeH; H++) //je nach Eingabe das Array auf true setzen { for(B;B<=m_EingabeB; B++) { for(T;T<=m_EingabeT; T++) { nContainerHBT[H][T]=true; } } } if (nContainerHBT[1][1][1]=true) test="Ja"; else { test="Nein"; } UpdateData(true); }
30. September 200222 j das habe ich auch noch geändert, 1000 mal Danke für die Hilfe. Ich war echt total verzweifelt, endlich komme ich ein bischen weiter. Noch eine kleine Frage, kann ich die Variable "test" (CString) so benutzen? : CODE: test = test && " ;Ja"; Ich will in einer Schleife immer das Wort " ;Ja" (bzw. Nein) in die Variable schreiben, dabei aber immer den alten Inhalt erhalten. Danke
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.