Dateien einlesen ...

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

  • Dateien einlesen ...

    Hi,
    ich möchte aus einer Datei zeilenweise Daten auslesen. Jetzt möchte ich aber erst ab der 6. Zeile etwas einlesen.

    Wie mache ich das ???
    Manus manum lavat.

  • #2
    Hi,
    ist nicht sonderlich tricky geprogt...läuft aber ;-)
    Gruß
    Thomas

    $trenn = "5"; //Seitenumbruch nach...
    $max = // Anzahl der Zeilen mußt Du vorher ermitteln
    if ( file_exists($datei)){
    $fp = fopen( $datei,"r");

    // -> komplett in ein Array einlesen
    $i = 0;
    if( $i=0; $i < $max; $i++){
    $line[$i] = fgets( $fp,4000);
    }

    if ( $seite == 2){
    $i = $trenn;
    $stop = $max;
    }

    elseif ( $seite == ""){
    $i = 0;
    $stop = $trenn;
    }

    while ($line[$i] !="" && $i < $stop){
    // Ausgabe / Behandlung der Daten
    }
    }

    Edit: die Datei halt wieder schließen...
    Gruß
    Thomas

    Kommentar


    • #3
      $i = 0;
      $f = fopen('datei','r');
      while (!feof($f)) {
      if ($i>=5) {
      $zeilen[$i-5] = fgets($f,1024);
      }
      $i++;
      }
      fclose($f);

      [Editiert von Sky am 30-12-2001 um 20:23]

      CAT Music Files

      Kommentar


      • #4
        Wofür brauche ich denn j ???
        Manus manum lavat.

        Kommentar


        • #5
          Oops... Brauchst es nicht, hatte nur vorher nen anderen Ansatz.. sorry.

          CAT Music Files

          Kommentar


          • #6
            Hi Sky,
            irgendetwas stimmt da noch nicht ???

            Mein Quellcode:

            while (!feof($fp) && $mehr)
            {
            if($i>=5)
            {
            $inhalt[$i-5] = fgets($fp,2000);
            $inhalt = str_replace ('<font face=arial size=-1>','<table border="0" cellspacing="0" cellpadding="1"><tr><td width="5%" Class="klein" valign="top">',$inhalt);
            $inhalt = str_replace ('<a','</a></td><td width="95%" Class="klein" valign="top"><a target="rechts"',$inhalt);
            $inhalt = str_replace ('</a><br></font>','</a><br>',$inhalt);

            echo $inhalt;
            echo '</td></tr></table>';
            }
            $i++;
            }
            }
            fclose ($fp);


            Meine Ausgabe: ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray ArrayArrayArrayArrayArrayArrayArrayArrayArrayArrayArray

            ?????????????????????????????????????????
            Manus manum lavat.

            Kommentar


            • #7
              Ist ja auch ein Array von Zeilen, den du durchlaufen musst. Aber so wie du es möchtest, können wir es auch so lösen:

              while (!feof($fp) && $mehr) {
              $inhalt = fgets($fp,2000);
              if($i>=5) {
              $inhalt = str_replace ('<font face=arial size=-1>','<table border="0" cellspacing="0" cellpadding="1"><tr><td width="5%" Class="klein" valign="top">',$inhalt);
              $inhalt = str_replace ('<a','</a></td><td width="95%" Class="klein" valign="top"><a target="rechts"',$inhalt);
              $inhalt = str_replace ('</a><br></font>','</a><br>',$inhalt);
              echo $inhalt;
              echo '</td></tr></table>';
              } else {
              }
              $i++;
              }
              }
              fclose ($fp);

              CAT Music Files

              Kommentar


              • #8
                Achja, schau nochmal da rein, hab noch einen Ansatz: http://www.php-resource.de/forum/sho...8&pagenumber=3

                CAT Music Files

                Kommentar


                • #9
                  Hi Sky,
                  hier noch mal eine knifflige Aufgabe, glaube ich.

                  Meine Seite sieht jetzt so aus:

                  <HTML>
                  <HEAD>
                  <TITLE>Merkel und Stoiber heizen Debatte um Kanzlerkandidatur weiter an</TITLE>
                  <META content="www.dpa-info.com" name="GENERATOR">
                  <body><table cellspacing="5" cellpadding="0" width="450"><tr><td>
                  <font face="arial,helvetica" size="2" color="#000000"><b>Merkel und Stoiber heizen Debatte um Kanzlerkandidatur weiter an</b></font><br></td></tr><tr><td>

                  <!-- hier das Image hin -->
                  <font face="arial,helvetica" size="2" color="#000000">Berlin (dpa) - CDU-Chefin ... unterbreiten.</font>
                  <IMG SRC="../AngelaxMerkel_1411828_thumbnail.nitf">Angela Merkel</td></tr></table>
                  </BODY>
                  </HTML>

                  Jetzt möchte ich das, was zwischen .nitf"> und </td> steht löschen (in diesem Fall Angela Merkel - wer will es mir verdenken )

                  Danach soll das Image an die markierte Stelle.

                  Ich habe jetzt schon ziemlich lange probiert - es klappt einfach nicht (((
                  Manus manum lavat.

                  Kommentar


                  • #10
                    $inhalt = preg_replace("!.nitf\">(.*?)</td>!i",".nitf\"></td>",$inhalt);
                    preg_match("!<img(.*?)</td>!i",$inhalt,$matches);
                    $inhalt = preg_replace("!</tr><tr><td>!i","</td></tr><tr><td><img$matches[1]</td>",$inhalt);

                    CAT Music Files

                    Kommentar


                    • #11
                      Hi Sky,
                      Frau Merkel ist weg, aber leider wird das Image nicht versetzt
                      Manus manum lavat.

                      Kommentar


                      • #12
                        $inhalt = preg_replace("!.nitf\">(.*?)</td>!i",".nitf\"></td>",$inhalt);
                        preg_match("!<img(.*?)</td>!i",$inhalt,$matches) or echo 'No match found!';
                        $inhalt = preg_replace("!\</tr\>\<tr\>\<td\>!i","</td></tr><tr><td><img".$matches[1]."</td>",$inhalt);

                        CAT Music Files

                        Kommentar


                        • #13
                          Hi Sky,
                          klappt jetzt - die Seite sieht jetzt so aus:

                          <HTML>
                          <HEAD>
                          <TITLE>Merkel und Stoiber heizen Debatte um Kanzlerkandidatur weiter an</TITLE>
                          <META content="www.dpa-info.com" name="GENERATOR">
                          <body><table cellspacing="5" cellpadding="0" width="450"><tr><td>
                          <font face="arial,helvetica" size="2" color="#000000"><b>Merkel und Stoiber heizen Debatte um Kanzlerkandidatur weiter an</b></font></td></tr><tr><td><img SRC="../../publishedPictures/AngelaxMerkel_1411828_thumbnail.jpg" align="right">
                          <font face="arial,helvetica" size="2" color="#000000">Berlin (dpa) ... unterbreiten.</font>
                          <IMG SRC="../../publishedPictures/AngelaxMerkel_1411828_thumbnail.jpg" align="right"></td></tr></table>
                          </BODY>
                          </HTML>

                          Das Image-Tag ist also 2mal vorhanden - jetzt muss nur noch das zweite Image-Tag weg

                          Manus manum lavat.

                          Kommentar


                          • #14
                            $inhalt = preg_replace("!(\<img)(.*)(\>\<font)!i","<font",$inhalt);

                            Sag mal, was wird das eigentlich mal, wenn es fertig ist...?

                            CAT Music Files

                            Kommentar


                            • #15
                              Noch ein Problem:

                              Wenn in einer Datei gar kein Bild vorhanden ist, bekomme ich diese Ausgabe (man beachte das <img):

                              <font face="arial,helvetica" size="2" color="#000000"><b>Einigung &uuml;ber Afghanistan-Schutztruppe erzielt</b></font></td></tr><tr><td><img

                              Das wird durch diese Zeilen hervorgerufen:

                              preg_match("!<img(.*?)</td>!i",$inhalt,$temp3);
                              $inhalt = str_replace("</td></tr><tr><td>","</td></tr><tr><td><img$temp3[1]",$inhalt);


                              Wenn temp3[1] leer ist, wird nur <img geschrieben

                              Ist es möglich, wenn $temp3[1] leer ist, dort das <img wegzulassen ???
                              Manus manum lavat.

                              Kommentar

                              Lädt...
                              X