Bestimmte Zeile aus einer TXT-Datei auslesen.

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

  • Bestimmte Zeile aus einer TXT-Datei auslesen.

    Hi Zusammen

    Ich möchte eine bestimmte Zeile aus einer TXT-Datei ausgeben. Wie krieg ich das hin?

    Grüsse
    MadGeek

  • #2
    welche zeile denn? die erste, zehnte 15647.????
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      In der TXT-Datei sind 20 Zeilen....


      Grüsse
      MadGeek

      Kommentar


      • #4
        ok wenn Du weisst welche Du haben willst
        dann
        machs über die file("datei");
        funktion und der indexierung des arrays der da rauskommt
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          Danke

          o.T.

          Kommentar


          • #6
            Das interssiert mich auch.

            Wie kann ich dann herausbekommen wie viele Zeilen eine TXT-Datei hat.

            Angenommen ich benutze diese als Logfile und möchte dann wissen, wie viele Einträge da schon drinn stehen.

            Und wie sieht der Code aus, wenn ich nun die 10. Zeile angezeigt bekommen will?

            Grütze, Andi

            Kommentar


            • #7
              $anzahl_zeilen = count(file($datei));
              dann liest Du die Datei zeilenweise ein,
              überführst den Inhalt in ein array, und gibst
              die Zeile No.10 mit
              echo "$zeilen[9]";
              aus...

              $fp=fopen($datei,"r");
              while(!feof($fp)) {
              $zeilen[]=fgets($fp,2000);
              }
              fclose($fp);

              Gruß
              Thomas
              Gruß
              Thomas

              Kommentar


              • #8
                um die letzte Zeile anzuzeigen (egal wie viele es sind) gibt es noch ne kürzere (aber nicht unbedingt schnellere) Variante:
                $file = array_reverse(file('datei.txt'));
                echo $file[0];
                mein Sport: mein Frühstück: meine Arbeit:

                Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                Kommentar


                • #9
                  Hallo. Dieses Script kann das (vorausgesetzt, du weisst, welche Zeilen du brauchst).
                  Ist vermutlich ein Anfängergebastel, aber es funktioniert zumindest :-)
                  mfg CHnuschti



                  Code:
                  <?php
                  
                  // hier werden die zu suchenden Dateien (anhand der extension) sowie der Ordnerpfad, wo die Dateien liegen, gesetzt
                  // Ferner wird gesetzt, welche Zeilen gelesen werden sollen (wird als array definiert) ==> Zeilennummer eingeben, mit Komma trennen. Im Beispiel unten werden die Zeilen 1, 2, 3 und 4 gelesen. 
                  
                  // In diesem Falle sehr wichtig, es hat mich Stunden gekostet, ist die Funktion rewind. Wird diese nicht gesetzt, dann geht die Schlaufe for($j=0 .........) unwiderruflich nur einmal durch und nicht $numzeilen-mal!!!!!!!!
                  
                  
                  // HIER SIND DIE GEWÜNSCHTEN/ERFORDERLICHEN DATEN ZU SETZEN
                  //***********************************************************************************************************
                  $pfad = "C:/Dokumente und Einstellungen/Administrator/Desktop/Neuer Ordner/000/members/";
                  $extension = "dat";
                  $lieszeile = array(1,2,3,4);
                  $trennzeichen = ";";	// dieses Trennzeichen trennt die in der Datei gefundene Zeilen (für Verwendung in Datenbank)
                  //************************************************************************************************************
                  
                  
                  // ermittelt die Anzahl zu lesende Zeilen
                  $numzeilen = count($lieszeile);
                  // ermittelt die Länge der extension
                  $extensionlaenge = strlen($extension);
                  
                  
                  
                  
                  // DAS IST DIE ROUTINE ********************************************************************************
                  
                  $verzeichnis = opendir($pfad);
                  
                  while (false !== ($file = readdir ($verzeichnis)))
                  {
                  $laengedat = strlen($file);
                  $namedat = substr($file, 0, $laengedat-$extensionlaenge-1);
                  $extensiondat = substr($file, $laengedat-$extensionlaenge, $extensionlaenge);
                  if ($extensiondat == $extension)
                  	{
                  	$filepfad = $pfad . $file;
                  	$fp = fopen($filepfad, "r");
                  		$zeile = $namedat . $trennzeichen;
                  		for ($j=0; $j<$numzeilen; $j++)
                  		{
                  		rewind($fp);
                  		$i=0;
                  		while (!feof($fp))
                  			{
                  			$i = $i+1;
                  			$temp = trim(fgets($fp, 100000));             // die gelesene Zeile wird getrimmt wg. allf. Leerzeichen
                  			if ($i == $lieszeile[$j]) $zeile .= " " . $temp . $trennzeichen;
                  			}		
                  		}
                  	echo $zeile . "<br>";
                  	fclose($fp);
                  	}
                  }
                  	
                  
                  closedir($verzeichnis); 
                  
                  ?>
                  [Editiert von CHnuschti am 27-02-2002 um 04:59]

                  Kommentar

                  Lädt...
                  X