Bestimmte Textstellen



  • Christian211 schrieb:

    Das kann nicht sein. In der Schleife wir keine Messagebox mehr ausgegeben. Die wird DANACH ausgegeben. Schau nochmal hin!

    Yo hatte es falsch geändert es funzt alles sehr gut danke an alle anmtworten besonders an Christian211



  • Christian211 schrieb:

    Du übertreibst etwas 😉

    Die C++-Entwickler haben sich sicher etwas dabei gedacht, als sie die Deklaration im Schleifenkopf erlaubt haben. 😉
    Wiederverwendung ist natürlich möglich, birgt aber Fehlerpotential (fehlende Neuinitialisierung).



  • Ohhhhh 😛

    for(int Zahl=0; Zahl<=Liste->Count; Zahl++)
      {
      if((Liste->Strings[Zahl]==Edit1->Text)&&(Liste->Strings[Zahl+1]==Edit2->Text));
       {
       Form1->Button1->Enabled=false;
       Form1->Button2->Enabled=true;
       Form1->Button4->Enabled=true;
       gefunden=true;
       Form2->Close();
       break;
       }
      }
     if(!gefunden)
      {
      Application->MessageBox("Your name or/and password is wrong", "error", 0);
      }
    

    Was is jetzt daran falsch? Das problem ist: EGAL ob was gefundne wird oder nicht, er führt die erste if methode aus und lässt die 2. unbeachtet. Also auch wenn nichts gefunden wird wird die erste if methode benutzt

    thx



  • Hast du gefunden vorher mit false initialisiert?
    Bei deiner Abfrage gehst du zu Schluß über die Arraygrenzen hinaus.

    for(int Zahl=0; Zahl<=Liste->Count; Zahl++) // geht von 0 bis Count, Liste geht aber nur von 0 bis Count-1
      {
    // hier testest du bei Zahl=Count sogar mit Count+1
      if((Liste->Strings[Zahl]==Edit1->Text)&&(Liste->Strings[Zahl+1]==Edit2->Text));
    

    richtiger wäre

    for(int Zahl=0; Zahl<Liste->Count-1; Zahl++)
      {
      if((Liste->Strings[Zahl]==Edit1->Text)&&(Liste->Strings[Zahl+1]==Edit2->Text));
    


  • Braunstein schrieb:

    Hast du gefunden vorher mit false initialisiert?
    Bei deiner Abfrage gehst du zu Schluß über die Arraygrenzen hinaus.

    for(int Zahl=0; Zahl<=Liste->Count; Zahl++) // geht von 0 bis Count, Liste geht aber nur von 0 bis Count-1
      {
    // hier testest du bei Zahl=Count sogar mit Count+1
      if((Liste->Strings[Zahl]==Edit1->Text)&&(Liste->Strings[Zahl+1]==Edit2->Text));
    

    richtiger wäre

    for(int Zahl=0; Zahl<Liste->Count-1; Zahl++)
      {
      if((Liste->Strings[Zahl]==Edit1->Text)&&(Liste->Strings[Zahl+1]==Edit2->Text));
    

    Problem besteht weiterhin! Hat nicht geholfen trotz beider verbesserungen



  • Steht irgendwo vorher geschrieben ?

    gefunden=false;
    

    Falls nein, dann ist das ein Fehler (siehe sundays Post).

    Da war ein "=" zuviel, jetzt nicht mehr. 🕶



  • @CounterstrikePlayer
    Geh doch bitte mal mit dem Debugger durch und schau was dein Code macht.



  • caspar_louis schrieb:

    Steht irgendwo vorher geschrieben ?

    gefunden=false;
    

    Falls nein, dann ist das ein Fehler (siehe sundays Post).

    Da war ein "=" zuviel, jetzt nicht mehr. 🕶

    ja hab ich bei mir stehen

    Braunstein schrieb:

    @CounterstrikePlayer
    Geh doch bitte mal mit dem Debugger durch und schau was dein Code macht.

    wie ist das gemeint? Sorry Größter Noob aller Zeiten am werke



  • Hallo

    Braunstein meint, du sollst den Debugger benutzen.

    bis bald
    akari



  • akari schrieb:

    Hallo

    Braunstein meint, du sollst den Debugger benutzen.

    bis bald
    akari

    hab ich aber das hilft mir auch nicht
    sobald der bei der ersten if-methode ankommt, setzt er gefunden auf true egal ob es wirklich so sein soll oda nich



  • Och nööö. Und ich dachte, du hättest inzwischen dazugelernt. Auch nach If-Abfragen gehört kein Semikolon... Sonst kommt dasselbe raus wie bei deiner Schleife am Anfang...



  • Mach mal das Semikolon hinter de if-Abfrage weg.



  • :p KACK DRECK XD
    ich hasse dieses semikolon 😛

    Ich hoffe es is euch r3cht wenn ich mich mal eben bedanke und ruhig bin ^^


Anmelden zum Antworten