csv Datei rückwärts lesen

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

  • #16
    Hi Melewo,

    Überprüfung !==false weglassen.

    Version 1 - Die Spalten sind durch Komma getrennt (default), ich übergebe nur den Dateinamen . . .
    PHP-Code:
    <?php
    $handle 
    fopen ('datei.csv'r);
    while(
    $line fgetcsv($handle)){
     echo 
    '<pre>';
     
    print_r($line);
     echo 
    '</pre>';
    }
    fclose($handle);
    ?>
    Version 2 - Die Spalten sind durch Komma getrennt (default), ich übergebe Dateinamen und Trennzeichen ohne Zeilenlänge . . .
    PHP-Code:
    <?php
    $handle 
    fopen ('datei.csv'r);
    while(
    $line fgetcsv($handle',')){
     echo 
    '<pre>';
     
    print_r($line);
     echo 
    '</pre>';
    }
    fclose($handle);
    ?>
    Beide Versionen funktionieren, liefern das gleiche Ergebnis. Schonmal dran gedacht, dass auch PHP-Funktionen nicht immer arbeiten, wie beschrieben?

    Gruß
    Günni

    Kommentar


    • #17
      Danke für die Hinweise, doch ich habe keine Probleme und muss auch keine CSV-Dateien auswerten oder verarbeiten, sondern habe nur einiges getestet und wie ich meine, dabei auch eine akzeptable Lösung gefunden. Wenn das dem Fragesteller weitergeholfen hat, dann ist es gut.

      Kommentar


      • #18
        Zitat von Melewo Beitrag anzeigen
        Wenn length weggelassen wird, so findet fgetcsv auch delimiter nicht mehr, ...
        Niemand verlangt, das Argument für $length wegzulassen. Aber auf 0 setzen darfst du es schon.
        Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

        Kommentar


        • #19
          Zitat von fireweasel Beitrag anzeigen
          Niemand verlangt, das Argument für $length wegzulassen. Aber auf 0 setzen darfst du es schon.
          Hatte ich gestern noch getestet und geändert. Soll heißen, habe bei fgets
          PHP-Code:
          while ((fgets($handle)) !== false ) { 
          length entfernt und bei fgetcsv length zu den Eigenschaften hinzugefügt, mit dem Wert 0. Falls einer das Script wirklich mal testen oder verwenden möchte, kann er dann den Wert der Eigenschaft bei Bedarf anpassen.
          PHP-Code:
          private $leng  =   0;
          ...
           
            while ((
          $data fgetcsv($handle$this->leng$this->sepa)) !== false
          Bei fgets verringerte sich die Laufzeit durch die Entfernung von length um durchschnittlich 0,05 Sekunden, unter Verwendung der Testdatei mit 200.000 Zeilen.

          Für die Hinweise bin ich dankbar, doch als Demo sollte es damit genügen, zumal noch einige weitere Details getestet und verbessert wurden und mehr als ein Demo ist es ja nicht. Für meine eigenen Seiten benutze ich keine CSV-Dateien und als ich die mal nutzen wollte, speicherte ich die in einer Datenbank. Da liegen die eventuell heute noch, denn noch bevor die Webseiten richtig eingerichtet waren, stieg ich auf Web Services um.

          Zitat von andygyr Beitrag anzeigen
          Wenn ich da die Daten in ein Array lese, das Array umdrehe und mit einem foreach durchgehe und ausgebe, inkl. str_getcsv und print_r brauche ich dafür ca. 5 Sekunden, vobei die dauer für print_r in etwa meinem Vorhaben entsprechen wird.
          Ladezeit der Seiten unter Localhost:
          Größe der CSV 181 MB mit 200.000 Zeilen
          Firebug beim Blättern von einer Seite zur anderen: 561ms (onload: 627ms)

          Ladezeit der Seiten im Web:
          Größe der CSV 16,2 MB mit 18.000 Zeilen
          Firebug beim Blättern von einer Seite zur anderen: 561ms (onload: 630ms)
          Zuletzt geändert von Melewo; 18.03.2013, 11:23.

          Kommentar


          • #20
            Vielen Dank an alle die mit geholfen haben.

            Ich habs nun auch eingesehen, dass es wohl sinnvoller ist eine Datenbank zu benützen. Nur schon, weil gewisse Aktiendaten sicherlich nicht nur einmal abgerufen werden, und so kann ich dann immer noch die fehlenden einfach Updaten.
            Bücher für Programmierer

            Kommentar


            • #21
              Ich bin nun Dabei die Daten in die Datenbank zu speichern. Ich habe jedoch Probleme mit dem Datenbankdesign. Was ist am sinnvollsten, alle Daten in eine Tabelle zu speichern (das gäbe dann für jeden Tag einer Aktie einen Datensatz) oder pro aktie eine Tabelle zu generieren?
              Bücher für Programmierer

              Kommentar

              Lädt...
              X