Zeile aus Datei auslesen und verändern

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

  • Zeile aus Datei auslesen und verändern

    Habe folgendes Problem, ich möchte gern aus einer externen CSV Datei die Daten auslesen. In der CSV stehen die Daten wie folgt aufgelistet:

    4638263;50.99;60.99;33;1;
    1612033;85.47;95.47;96;1;
    1593308;259.25;269.25;12;1;

    Die Daten welche in eine Tabelle übermittelt werden sollen sind durch Semikolon getrennt, Artikelnummer;Einkaufspreis;Verkaufspreis;Lagerbestand;On o. Offline.

    Den Script für das auslesen und schreiben sowie verändern der Daten habe ich schon, nur das dass verändern so seine probleme macht. Und zwar soll der Script prüfen ob hinter dem 3 Semikolon eine 0 oder eine andere Zahl steht wenn eine 0 da steht dann soll er hinter dem 4 Semikolon auch eine 0 machen, was auch super klappt.

    So und jetzt das eigentliche Problem. Ich hätte gern das zur der IF Variable eine ELSE IF hinzukommt, welche prüft ob hinter dem 3 Semikolon eine 0 oder eine höhere Zahl steht also größer als >0 und wenn da eine Zahl höher als 0 steht dann soll er hinter dem 4 Semikolon eine 1 machen.

    An der ELSE IF Variable habe ich mich auch schon versucht und diese würde auch funktionieren wenn ich für den ersten vergleichswert eine feste Zahl hätte aber es soll ja eine x beliebige Zahl sein Hauptsache größer als 0.

    Hier mal der Script

    PHP-Code:
    $daten file('update.csv');        
    $fp fopen('update.csv''w');            
    foreach (
    $daten as $zeile){
        
    $felder explode(';'$zeile);        
        if (!
    strcmp($felder[3], '0'))    
            
    $felder[4] = '0'
                    
    else if  (!
    strcmp $felder[3], '0')){    
            
    $felder[4] = '1';

            
    $zeile implode(';'$felder);   }
        
    fwrite($fp$zeile);                }
    fclose($fp); 
    Hab auch bei der ELSE IF Variable schon versucht einen dritten String ($var > 0,) unter zubekommen aber da macht !strcmp wegen der parameter nicht mit und selbst wenn dann hätte ich ne undefinierte Variable.


    Hoffe ihr könnt mir helfen!!

  • #2
    Zuerst solltest du dich mal mit fgetcsv vertraut machen.
    Dann wäre eine knappere, eindeutige Formulierung deiner Anforderung hilfreich. Ich habe es so verstanden:
    Du hast CSV-Daten mit 6 Spalten. Die willst du verändern. Und zwar willst du in jeder Zeile, bei der die 3. Spalte den Wert 0 hat, der 4. Spalte auch den Wert 0 geben. Das funktioniert auch schon.
    Nun willst du zusätzlich prüfen, ob die 3. Spalte > 0 ist und dann in die 4. Spalte 1 schreiben.
    In Pseudocode ausgedrückt:
    Code:
    if (spalte3 = 0) {
        spalte4 = 0;
    } elseif (spalte3 > 0) {
        spalte4 = 1;
    }
    Das lässt sich aber ziemlich einfach in PHP übersetzen. Was genau ist dein Problem?

    Übrigens enthalten deine Beispieldaten keine 0 in 3. Spalte. Also wunder dich nicht, wenn das erste if niemals zutrifft. ;-)

    Kommentar


    • #3
      hey lieben dank

      du ich danke dir hab es hinbekommen!!


      hier nochmal der script für die die vielleicht das selbe problem haben


      PHP-Code:
      $daten file('update.csv');        
      $fp fopen('update.csv''w');             
      foreach (
      $daten as $zeile){ 
          
      $felder explode(';'$zeile);         
          if (
      $felder[3]==  0)     
              
      $felder[4] = '0';                  
      else if   ( 
      $felder[3] > 0){     
              
      $felder[4] = '1'


              
      $zeile implode(';'$felder);    
            
      fwrite($fp$zeile);                 

      fclose($fp); 

      Kommentar

      Lädt...
      X