Eine Datei auslesen

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

  • Eine Datei auslesen

    Hallo Leute,
    Bin noch neu hier und schon habe ich eine Frage:

    Ich habe vor einen script in PHP zu schreiben.
    Und zwar will ich damit dateien per Formular bearbeiten config.dat,
    die so aussehen:
    Code:
    141;000;104;011;6
    141;000;104;012;0
    141;000;104;013;0
    141;000;104;014;0
    141;000;105;000;0
    141;000;105;001;0
    141;000;105;002;0
    141;000;105;003;0
    141;000;105;004;0
    141;000;105;005;0
    141;000;105;006;0
    141;000;105;007;0
    Die Dateien sind alle ziemlich gleich aufgebaut, nur es gibt mal mehr
    mal weniger zeilen so das die Werte entsprechend immer nach oben oder nach unten rutschen.

    Die eigentliche Frage, wie kann ich den datenzeiger zb. auf
    Code:
    141;000;104;011;6
    fixieren.

    Gruß
    partizan0180

  • #2
    Es gibt die Möglichkeit, den Zeiger mittels fseek an eine bestimmte Position in einer Datei zu setzen - allerdings hilft dir das nur, wenn du eine feste Datensatzlänge hast.

    Wozu willst du den denn setzen?
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Hi.

      Beispiel:

      PHP-Code:
      <?php
      $zeile 
      0;
      if (isset(
      $_GET['zeile']))
         
      $zeile $_GET['zeile'];

      $file_array file("name.txt");

      echo 
      $file_array[$zeile];
       
       
      ?>
       <a href="NAME_DES_SCRIPTS.php?zeile=<?=($zeile+1)?>">Weiter</a> - <a href="NAME_DES_SCRIPTS.php?zeile=<?=($zeile-1)?>">Zurück</a>
      ?>
      Zeilenweise auslesen. Wenn du noch trennen willst, nimmste explode

      mfg streuner
      Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
      der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

      "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

      Kommentar


      • #4
        Hi,
        Genau das ist ja mein problem, das die zu bearbeitende dateien keine feste datensätze besitzen.
        das Beispiel von streuner ist schon sehr verständlich. Nur wen eine zeile dazu kommt dann rutscht das ganze und in mainem Formular erscheinen falsche werte.

        Kommentar


        • #5
          Zitat von partizan0180 Beitrag anzeigen
          Nur wen eine zeile dazu kommt dann rutscht das ganze und in mainem Formular erscheinen falsche werte.
          In wie fern falsch?

          Wenn du dein einzelnen Zeilen irgendeine Bedeutung zumessen willst, dann musst du sie auch irgendwie identifizierbar machen.
          I don't believe in rebirth. Actually, I never did in my whole lives.

          Kommentar


          • #6
            Genau da hackt es bei mir.
            das ist die ganze zeile:

            141;000;104;011;6

            Denn dien ersten werte zb.

            141;000;104;011;[FONT=monospace]

            dienen auch zu indifizierung.

            und der letzte wert

            [/FONT]6

            Soll bearbeitet werden.

            Und ich habe noch keiner Ahnung wie ich das einstellen soll bzw. Es fehlt der gedanken anstoss.
            [FONT=monospace]


            [/FONT]

            Kommentar


            • #7
              Ahhh...dann arbeite mit if und prüfe auf die 141 ab, nimm dir den string und teile ihn mit explode! Dann hast Du Zugriff auf die "6".

              mfg streuner
              Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
              der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

              "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

              Kommentar


              • #8
                danke streuner
                wie gesagt kleiner anstoss ist nötig
                ist aber etwas komplex für anfänger wie ich.
                kannst du bitte einen code reinstellen? Bitte
                nur wenn du es willst, sonst muss ich weiter forschen

                mfg
                partizan0180

                Kommentar


                • #9
                  Hm..könnte ich, möchte natürlich aber auch, das Du was lernst !

                  Kannst meinen Code oben als Grundlage nutzen (geht auch eleganter, aber für's erste vielleicht mit am einfachsten). Dort liest Du zeilenweise aus. Jeden String splittest du mit explode nach ";" (siehe: PHP: explode - Manual) und prüfst den ersten Array Eintrag, ob dieser die "141" ist. Wenn ja, holst Du dir den letzten Array Eintrag, der dann "6" sein müsste. Verständlich?

                  mfg streuner
                  Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
                  der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

                  "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

                  Kommentar


                  • #10
                    Noch nicht so ganz alles verständlich aber ich bin dabei

                    Kommentar


                    • #11
                      Leider komme ich hier nicht weiter.

                      Kommentar


                      • #12
                        Ok, kein Problem. Zeig mal, was Du bisher hast und ich helfe Dir !

                        mfg streuner
                        Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
                        der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

                        "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

                        Kommentar


                        • #13
                          bitte nicht lachen
                          Code:
                          <?php
                          $zeile = 2;
                          $wert = "100;";
                          
                          $file_array = file("config.dat");
                          $wert = explode(" ", $file_array, $wert ) ; 
                          if ($zeile = 2 )
                          echo $file_array[$zeile];
                           
                           ?>
                          Zuletzt geändert von partizan0180; 14.03.2011, 15:45. Grund: Falsche datei gewesen

                          Kommentar


                          • #14
                            PHP-Code:
                            <?php

                            $file_array 
                            file("deintextfile.txt");

                            foreach (
                            $file_array as $zeile_num => $zeile) {
                                
                            $array explode (";"$zeile); //Zeilen aufsplitten -> Trennzeichen ist ja ; bei Dir!!
                               
                                
                            if ($array[4] <> 0){ //prüfen, ob letzter Wert in der Zeile <> 0 ist
                                 
                            $zeile_ausgeben $zeile_num 1//Zeile eine hochsetzen, da ab 0 gezählt wird
                                 
                            echo "Wert ".$array[4]." in Zeile ".$zeile_ausgeben;
                                }
                            }
                            ?>
                            da du keinen eindeutigen Indize für die jeweilige Zeile hast, prüfe ich jetzt, ob in jeder Zeile der letzte Wert <> 0 ist. Das ist dann dein gesuchter Wert (Zeile)! Willst du das so haben?

                            mfg streuner
                            Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert,
                            der letzte Netzknoten verkommerzialisert ist, werdet Ihr merken, dass Geld nicht von alleine programmiert.

                            "Diese Software verdient die 3 großen GGG: --- Gesehen --- Gelacht --- Gelöscht ---"

                            Kommentar


                            • #15
                              danke für deine hilfe.
                              der wert 141; soll ja geprüft werden und wenn es da ist dann anzeigen den letzten wert aus der zeile das wäre dann 6.
                              so sollte es ungefähr laufen.
                              Da ich ja sonnst keine schanse habe die richtigen Zeilen unter formular anzeigen.

                              Kommentar

                              Lädt...
                              X