Eine Datei auslesen

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

  • #16
    Hm...nach 141 darfst Du abern icht suchen, weil anscheinend jeder deiner Zeile mit 141 anfängt. Deswegen prüfe ich in meinem Beispiel einfach den letzten Wert in der jeweiligen Zeile, ob dieser ungleich 0 ist. Dadurch finde ich ja die entsprechende Zeile, die du suchst. Hast du jetzt mehrere Zeilen, die an letzter Stelle einen Wert ungleich Null haben, werde diese auch ausgegeben. Ist es das, was du wolltest?

    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


    • #17
      sory, das stimmt
      es sind mehrere zeilen die so anfangen
      im prinzip is das schin das was ich haben wollte
      hier ist ein gröserer ausschnit der dateien
      Code:
      100;0
      101;
      102;
      103;^
      104;
      105;
      106;1350
      107;127
      108;0
      109;0
      110;1296673208
      111;0
      120;0
      121;domane.de
      122;benutzername
      123;^xxxxxxx
      124;benutzername@domane.de
      125;benutzername@domane.de
      126;SMS0173...
      127;1335
      128;255
      129;0
      130;0
      131;0
      132;0
      133;0
      150;000;0
      150;001;8
      150;002;8
      150;003;6
      150;004;6
      150;005;6
      150;006;6
      150;007;6
      150;008;7
      150;009;7
      150;010;7
      150;011;7
      150;012;8
      151;000;0
      151;001;17
      151;002;18
      151;003;20
      151;004;21
      151;005;21
      151;006;22
      151;007;22
      151;008;21
      151;009;20
      151;010;19
      151;011;17
      151;012;17
      152;000;2
      152;001;6
      152;002;9
      152;003;11
      152;004;11
      152;005;13
      152;006;13
      152;007;12
      152;008;10
      152;009;6
      152;010;4
      152;011;3
      161;15000
      162;890
      170;1
      171;1
      172;3
      173;domane.de
      174;user
      175;^xxxxxxxxx
      176;www
      177;1297008979
      178;0
      190;0
      191;domane.de
      192;benutzername
      193;^xxxxxxxxx
      194;
      195;0
      Es ist immer der letzte Wert in den Zeilen zu bearbeiten.
      und danke noch ein mal für die Zeit die du für mich opferst
      Gruß
      partizan0180
      Zuletzt geändert von partizan0180; 14.03.2011, 16:28.

      Kommentar


      • #18
        PHP-Code:
        <?php

        $filename 
        '/Pfad/zu/deiner/Datei.txt';

        $search = array(
            
        => '141'
            
        => '000'
            
        => '104'
            
        => '011',
        );

        $hits = array();

        if (!
        file_exists($filename) || !is_readable($filename)) {
            die(
        'Datei nicht gefunden oder nicht lesbar');
        }

        $fh fopen($filename'r');
        $count = -1;
        while ((
        $line fgets($fh)) !== false) {
            
        $count++;
            
        $line explode(';'trim($line));
            foreach (
        $search as $i => $v) {
                if (!isset(
        $line[$i]) || $line[$i] !== $v) {
                    continue 
        2;
                }
            }
            
        $hits[$count] = $line;
            echo 
        'Gefunden in Zeile '$count ."<br />\n";
        }
        fclose($fh);

        // var_dump($hits);
        Damit findest du alle Zeilen (und sammelst sie im Array $hits), die dem Muster $search entsprechen.

        Hier wird nicht die ganze Datei auf einmal gelesen.
        Vorteil: Braucht weniger Speicher (Stichwort memory_limit).
        Nachteil: Schreiben kannst du so nicht. Dann entweder doch mit file() oder eben mit 'r+' öffnen und in der Schleife gleich rausschreiben.
        Zuletzt geändert von onemorenerd; 14.03.2011, 18:29.

        Kommentar


        • #19
          hallo onemorenerd,
          danke das ist super.
          nun noch eine frage, wie gebe ich den letzten wert aus derzeile aus?

          wie gesagt danke nochmal

          Kommentar


          • #20
            end($hits[NummerDerZeile])

            Das sind aber absolute Grundlagen!

            Kommentar


            • #21
              onemorenerd du hast volkomen recht.
              Habe zu kompliziert gedacht.

              Trotztem danke für deine hilfe

              Kommentar

              Lädt...
              X