tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
223
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    tomkn tomkn ist offline Mitglied Silber
    Registriert seit
    Sep 2004
    Beiträge
    71
    Hallo,

    ich stehe vor folgendem Problem:

    Ich habe eine While schleife :while($line=fgets($fd,1024))

    Darin wird nach Dateien mit einem bestimmten Attribut gesucht.

    Zusätzlich ist darin noch eine Schleife die für den Fall das datei vom Typ X gefunden wird, nach weiteren Dateien vom Typ X sucht und alle in ein Array schreibt.

    Das heisst aber : ich habe sowohl in der Internen als auch in der Externen Schleife ein fopen.
    Wenn ich nun 1mal : $fd = fopen( $filename, "r" ); und dann in der Internen auch mit $fd arbeite bricht er nach erfolgreichem Durchlauf die gesamte Suche ab: D.h. alle Folgeelemente werde nicht gefunden.

    In meinem zweiten Ansatz habe ich zusätzlich einen zweiten Filereader eingebaut:
    $fddocs = fopen( $filename, "r" );

    In diesem Fall läuft die Externe Schleife sauber - dafür findet die interne immer nur ein Element und bricht dann ab.

    Ziemliches Chaos! Bin für jede Hilfe dankbar
    Geändert von tomkn (24.07.06 um 12:06 Uhr)
     

  2. #2
    Registriert seit
    Oct 2005
    Beiträge
    277
    Hi, du brauchst in der while-Schleife einen Vergleichsoperator und keinen Zuweisungsoperator.

    z.B.

    PHP-Code:
    while($y 10 ) {
    echo 
    $y;
    $y++;

    Zeig doch mal deinen ganzen Code.

    schiese
     

  3. #3
    tomkn tomkn ist offline Mitglied Silber
    Registriert seit
    Sep 2004
    Beiträge
    71
    while($line=fgets($fd,1024))
    {

    $line_array = explode("|$|",$line);
    $selMatnrTmp = $line_array[5];

    // Zeilenumbrüche ignorieren
    $selMatnrTmp = trim($selMatnrTmp);


    if(strtoupper($selMatnrTmp) == strtoupper($selMatnr)){


    if(strtoupper($line_array[2])=="V") {

    $grafik=1;

    $last_layer += 1;
    $itemGrafik=$line_array[0];
    $arr_atwrt[$count] = $line_array[1];
    $materialNr= $line_array[3];
    $materialBez= $line_array[4];

    $count++;

    }
    else if(strtoupper($line_array[2])=="Z") {
    $zoom = 1;
    $itemZoom = $line_array[0];
    }
    else if(strtoupper($line_array[2])=="B") {
    $pdf = 1;

    $index= 0;

    $itemPDF = $line_array[0];


    // Prüfen ob mehrere Dokumente hinterlegt sind, falls ja: wird eine Liste mit allen per Popup ausgegeben

    // Zweiter Filereader für das Durchsuchen nach mehreren Dokumentationen ( bei Benutzung
    // eines einzigen kommt es zu Konflikten )

    while(($line=fgets($fddocs,1024)))
    {
    if($index == 0)
    {

    $pdfarray[$index]=$itemPDF;

    }
    $line_array = explode("|$|",$line);
    $selMatnrTmp = $line_array[5];
    // Zeilenumbrüche ignorieren
    $selMatnrTmp = trim($selMatnrTmp);

    // Wenn Nummer & Typ gleich sind:
    if((strtoupper($selMatnrTmp) == strtoupper($selMatnr))&&(strtoupper($line_array[2])=="B"))
    {
    $index++;
    $pdfarray[$index] = $line_array[0];
    echo 'var myarray = Array("'.implode('", "', array_map('addslashes', $pdfarray)).'");';
    echo 'mytemp=myarray[1];';
    $pdf= 2;
    }
    }
    usw...
     

Ähnliche Themen

  1. Datei anlegen mit fopen scheitert.
    Von Nord-Süd-Richtung im Forum PHP
    Antworten: 2
    Letzter Beitrag: 04.02.10, 19:52
  2. Antworten: 7
    Letzter Beitrag: 07.06.08, 22:02
  3. Antworten: 3
    Letzter Beitrag: 08.11.04, 20:43
  4. Antworten: 0
    Letzter Beitrag: 05.10.04, 23:03
  5. Gleiche Buchstaben in txt datei zählen
    Von Nucleus im Forum PHP
    Antworten: 2
    Letzter Beitrag: 03.02.02, 18:53