Problem mit dem Auslesen & Schreiben einer Textdatei.

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

  • Problem mit dem Auslesen & Schreiben einer Textdatei.

    Hallo zusammen!

    Folgendes Problem: Versuche Daten aus einer Datei (Beispiel: Datei "Artikel.txt") auszulesen und in einer anderen Datei (Beispiel: Datei "Umgewandelt.txt") wieder zu speichern.

    Besonderheit: "Artikel.txt" sieht beispielsweise so aus:

    100000; Universalschalter; 13.80;
    10.20; Peha; 1; 10;
    100001; Universalschalter; 14.80;
    11.20; Peha; 1; 10;

    In die Datei "Umgewandelt.txt" müssen die Daten allerdings so geschrieben werden:

    100000; Universalschalter; 13.80; 10.20; Peha; 1; 10;
    100001; Universalschalter; 14.80; 10.20; Peha; 1; 10;

    Ich muß also aus der Datei "Artikel.txt" jeweils 2 Zeilen auslesen und diese dann in der Datei "Umgewandelt.txt" als 1 Zeile speichern.

    Bei größeren Dateien (zwischen 4.000 und 5.000 Datensätze) ist es reiner Horror, daß alles von Hand zu ändern.

    Hat einer von euch vielleicht eine Idee wie ich das per Skript lösen kann???



    Vielen Dank im voraus für eure Gedanken und Lösungsansätze.

    Gruß

    Fretchen

  • #2
    Wenn es eine Einmalige Aktion ist, solltest du dir mal Makros deines Editors ansehen. Dann brauchst du kein Script.

    Ansonsten folgender Lösungsansatz:

    Das soll eine Schleife sein:

    0. i=1
    1. Zeile auslesen
    2. If i== ungerade zahl
    $tmp=$zeile;
    else
    $tmp=$tmp.$zeile;
    daten in neues File schreiben

    Kommentar


    • #3
      Einmalige Aktion kann man das ehrlich gesagt nicht nennen. Ich muß künftig jeden Monat eine Datei mit rund 40.000 Zeilen verarbeiten.

      Ich werd mal versuchen, Deinen Denkansatz umzusetzen.

      Vielen Dank schon mal im voraus, TobiaZ... Du hast mir jetzt schon einige Male aus der Patsche geholfen - Herzlichen Dank dafür!

      Kommentar


      • #4
        Dafür bin ich (und die anderen ja da).

        Also mit meinem Denkansatz sollte es gehen, vorrausgesetzt du verstehst, was ich meine. Wenn nicht, dann frag nach.

        Bei 40.000 Zeilen lohnt sich vielleicht mal langsam eine SQL-Datenbank, würde ich so denken. Ist um einiges komfortabeler

        Kommentar


        • #5
          Ich nehme mal an das die Text-Datei aus einen Win-Prog kommt die dann Online in eine Datenbank geschrieben werden soll. So lese ich das zumindestens.
          *winks*
          Gilbert
          ------------------------------------------------
          Hilfe für eine Vielzahl von Problemen!!!
          http://www.1st-rootserver.de/

          Kommentar


          • #6
            Ja und?

            Mag ja sein, dass das File aus nem Win-Progg kommt (warum sind da dann nicht direkt einzelne Zeilen geschrieben?). Aber das ändert ja eigentlich nichts an der Tatsache, dass man es nach meinem Ansatz umwandeln muss. Und es bestimmt einfacher wäre mit ner sql-DB zu arbeiten.

            Kommentar


            • #7
              Win-Prog??? Naja, fast...

              Ich hab in unserem Betrieb (ein Elektrofachgroßhandel) die ehrenwerte Aufgabe erhalten einen Online-Shop aufzuziehen. Dummerweise hat unser Warenwirtschaftssystem einen kleinen Haken, wenn es darum geht unseren Artikelstamm als CSV-Datei auszuspielen. Man kann zwar so viele Daten wie man braucht exportieren lassen, allerdings fügt das Programm beim Export hinter jedem 72. Zeichen einen Zeilenumbruch ein (das liegt daran, daß ich mir den Artikelstamm auf einem virtuellen Drucker bereitstelle und sie dann als Datei kopiere).

              Aber wenn ich jetzt ein kleines PHP-Skript an der Datei herumwerkeln lasse, dann habe ich die einzelnen Datensätze exakt so, wie sie sein sollen (nochmals vielen Dank für Deinen Tip TobiaZ).

              Damit ich beim Import in unseren Online-Shop auch nicht zu lange Wartezeiten in Kauf nehmen muß, lasse ich das Skript auch nach jedem 5000. Datensatz eine neue Datei speichern.

              Jetzt habe ich nur noch ein kleines Problem: Ich muß jede Zeile (und da auch nur die ersten 6 Zeichen) nach einem "x" durchsuchen. Hintergrund: Wir haben einige Artikelnummern bei uns wie z. B. "125x" die mit bestimmten Rabattabfragen gekoppelt sind. Diese sollen natürlich nicht mit in den Shop. Hat einer vor euch da ne Idee wie ich diese Suche realisieren kann???

              Danke, wie immer, im voraus!

              Gruss

              Fretchen

              Kommentar


              • #8
                substr(6); und dann mit den regEx nach einem "x" suchen. Kleinigkeit!

                Kommentar


                • #9
                  PS: Aber der Online-Shop basiert auf SQL, oder?

                  Kommentar

                  Lädt...
                  X