Ankündigung

Einklappen
Keine Ankündigung bisher.

while Schleife abbrechen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • while Schleife abbrechen

    Hallo,

    ich hatte es schonmal bei PHP Homepage versucht leider konnte mir dort keiner helfen, also versuch ich es hier nochmal.

    Ich habe folgendes Problem:
    Ich lese aus einem Directory mehrere Files ein und möchte das File unbearbeitet umkopieren wenn ich auf einen Syntaxfehler laufe.
    Das sieht dann so aus:

    PHP-Code:
    while (false !== ($file readdir($handle) )) 

     
     if ( 
    $file != '.' && $file != '..' && $file != $LogfileBackupDirectory
     { 
      while ( (
    $data fgetcsv ($filehandle1000";") !== FALSE ) { 
      
    $Weiter $ImportValue ->filterDaten($data[0]); 
         if (
    $Weiter == false
         { 
          break; 
         } 
         else { 
          echo 
    "weiter"
         } 
      }
    //iwhile data 
     
      
    }//if file 
    }// while readdir 


  • #2
    ...und deine Frage?!?

    Wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Machst du gut. Aber hast du auch ne Frage?

      Kommentar


      • #4
        Erster

        Wolf29
        while (!asleep()) sheep++;

        Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

        Kommentar


        • #5
          ...und möchte das File unbearbeitet umkopieren wenn ich auf einen Syntaxfehler laufe.
          Hört sich nach Fehlerbehandlung an.
          Müßte mit Exceptions machbar sein...
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar


          • #6
            ich komme irgendwie trotz break nicht aus der Schleife raus
            Ich möchte ja wenn ich 3 Dateien einlese und in der 2. ist ein Fehler, die 2. komplett abbrechen und dann mit dem einlesen der 3. Datei beginnen

            Ich weiß nur nicht genau ob ich mein break an der richtigen Stelle habe

            Kommentar


            • #7
              wie wär's mit continue...
              Competence-Center -> Enjoy the Informatrix
              PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

              Kommentar


              • #8
                Naja der Code wird ja nie ausgeführt, den du ausliest, wie sollte dieser dann einen Fehler verursachen (Syntaxfehler)?
                "My software never has bugs, it just develops random features."
                "Real programmers don't comment. If it was hard to write, it should be hard to understand!"

                Kommentar


                • #9
                  Hallo,

                  mir ist nicht ganz klar, was du jetzt genau machen möchtest. Der break; - Befehl führt jedenfalls dazu, dass die innere deiner beiden Schleifen bei Erfüllung der Bedingung
                  Code:
                  if ($Weiter == false)
                  verlassen und mit der äußeren Schleife fortgefahren wird.

                  Code:
                  continue;
                  würde den aktuellen Schleifendurchlauf der inneren Schleife nur beenden, aber dadurch wird nicht die Schleife verlassen.

                  Du solltest mal mit
                  Code:
                  var_dump($Weiter);
                  prüfen, welchen Wert die Variable überhaupt annimmt.
                  http://hallophp.de

                  Kommentar


                  • #10
                    Also die Variable $Weiter bekommt aus einer Methode den Wert true oder false weil ich dort abprüfe ob es weiter gehen soll.

                    Kommt dieser Wert mit false zurück möchte ich aus allen umliegenden Schleifen so weit raus dass dann die nächste Datei im Verzeichnis eingelesen wird usw.

                    Kommentar


                    • #11
                      Zitat von Paul.Schramenko Beitrag anzeigen
                      Naja der Code wird ja nie ausgeführt, den du ausliest, wie sollte dieser dann einen Fehler verursachen (Syntaxfehler)?
                      wieso wird der nicht ausgeführt?
                      es mag sein dass hier ein kleiner Verschreiber drin ist weil ich das für das Forum formatiert habe, darum geht es aber gar nicht

                      Kommentar


                      • #12
                        Zitat von Arne Drews Beitrag anzeigen
                        wie wär's mit continue...
                        Habe ich auch schon versucht nur wo und wie muss ich es einbauen?

                        Kommentar


                        • #13
                          Ja, das dürfte die äußere Schleife sein, mit der du fortfahren möchtest. Insofern scheint das Vorgehen korrekt zu sein. Hast du denn mal überprüft, ob du auch wirklich true oder false zurückbekommst?

                          [edit]

                          Oh!
                          PHP-Code:
                          while ( ($data fgetcsv ($filehandle1000";") !== FALSE ) { 
                          Da fehlt eine Klammer oder es ist eine zu viel! Bitte schreibe mal
                          Code:
                          <?php 
                          error_reporting(E_ALL | E_STRICT);
                          an den Anfang deines Scripts.

                          Gruß
                          http://hallophp.de

                          Kommentar


                          • #14
                            break (break 1) ist schon korrekt. Nur habe ich die Befürchtung, dass:
                            Also die Variable $Weiter bekommt aus einer Methode den Wert true oder false weil ich dort abprüfe ob es weiter gehen soll.
                            nur beschreibt, was Du erwartest, aber nicht das, was passiert. Rückgabewert prüfen!
                            --

                            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                            Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


                            --

                            Kommentar


                            • #15
                              Man könnte die Abbruchbedingung geschickter formulieren:

                              PHP-Code:
                              $Weiter true;
                              while ( 
                              $Weiter && ($data=fgets(...)) ) {
                               ...
                                
                              $Weiter false// beendet die Schleife 'sauber'

                              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                              Kommentar

                              Lädt...
                              X