text in csv format umwandeln

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

  • text in csv format umwandeln

    frohe weihnachten,

    möchte folgenden string

    1234567 Penol Reifen GRAU 115 1 1 ABB 0 6.65 9.98 0 0
    1234567 Penol Reifen GRAU 115 1 1 ABB 0 6.65 9.98 0 0
    hinweis: es ist nicht immer nur ein leerzeichen, das forum macht aus mehreren leerzeichen hier eins.

    in folgende Variation umwandeln

    "1234567","Penol Reifen GRAU 115","1","1","ABB","0","6.65,"9.98","0","0"
    "1234567","Penol Reifen GRAU 115","1","1","ABB","0","6.65,"9.98","0","0"

    nun habe ich schon einiges ausprobiert, im forum geschaut, etc. nur bekomme ich den richtigen regulären ausdruck nicht hin.

    folgendes funtioniert zwar etwas, ist aber nicht perfekt.
    PHP-Code:
    set_time_limit(0);
    $inhalt file('main.txt');
    $match "/ /";
    $inhalt2 preg_replace($match,'","',$inhalt);
    $fp fopen('main.csv''w');
    fputs($fpimplode(""$inhalt2));
    fclose($fp); 
    hat jemand den regulären ausdruck oder weiss jemand eine bessere lösung?

  • #2
    wieviele leerzeichen sinds denn?
    Immer die gleiche anzahl?
    Was kommt bei Deinem regexp als ergebnis raus?
    Beantworte nie Threads mit mehr als 15 followups...
    Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

    Kommentar


    • #3
      die leerzeichen sind leider unterschiedlich lang und zwischendruch habe ich leider auch noch text, der durch ein leerzeichen getrennt ist.


      das kommt raus:

      1234567","Penol","Reifen","","," ","GRAU","115","","1","usw.....

      Kommentar


      • #4
        gibt es irgendeine gemeinsamkeit die die felder trennt? etwa 2 oder mehr leerzeichen?
        Beantworte nie Threads mit mehr als 15 followups...
        Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

        Kommentar


        • #5
          leider nein! nach buchstaben kann man auch nicht gehen, man kann höchstens nach der platzierung gehen. sprich bis zum 7. buchstaben ist die artikelnummer, dann kommt die bezeichnung von 9 bis xxx, ist aber nicht 100 prozentig, da es auch da ausnahmen gibt.

          hab mal versucht anhand von exel über die tabellenbreite die datei zu erzeugen, geht aber auch nicht ohne fehlausgaben.

          bin jetzt schon mal soweit, daß ich folgende ausgangsdatei habe:

          1234567 Pola Reifen 123 st 0 0.00 50.00 0 1 2 0 0 0 0 0 0 2 3 1 0 0 1 0 0 1 0 0 0 0 0 0

          ob das soviel bringt ;-)
          Zuletzt geändert von mysqlfrage; 25.12.2005, 17:58.

          Kommentar


          • #6
            gibt es viele Felder, die immer die gleiche breite haben?
            dann kannste das ganze mehrstufig angehen, scheindas Problem liegt an feld 2 mit dem variablen Text.
            Beantworte nie Threads mit mehr als 15 followups...
            Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25

            Kommentar

            Lädt...
            X