carsten schlichting: fgetcsv() umbruch einfacher umbruch

hallo

versuche gerade eine .csv_datei mit fgetcsv() in ein array zu schreiben.

Jetzt tritt folgendes problem auf:

-in einem tabellenfeld ist ein einfacher umbruch ...also: return & shift

fgetcsv() denkt jetzt natürlich, dass eine neue zeile beginnt.

im ms editor wird der einfache Umbruch nicht dargestellt, in einem textverarbeitungprogramm z.B. word aber doch.

welche Zeichen verbergen sich eigentlch hinter dem normalen Umbruch und dem einfachen umbruch?

Und wie geht man am besten hier vor?

habe gedacht, das ich mit fopen() und fread() arbeiten könnte, aber dazu müßte ich wissen, wie die Umbrüche aussehen.

kann mir hier jemand helfen??

grüße carsten

  1. Hallo carsten.

    versuche gerade eine .csv_datei mit fgetcsv() in ein array zu schreiben.

    Jetzt tritt folgendes problem auf:

    -in einem tabellenfeld ist ein einfacher umbruch ...also: return & shift

    Was ist das für ein Umbruch? Wie es aussieht, meinst du damit einen Zeilenumbruch, wie ihn die Textverarbeitung oft bietet.

    im ms editor wird der einfache Umbruch nicht dargestellt, in einem textverarbeitungprogramm z.B. word aber doch.

    Klingt mysteriös.

    welche Zeichen verbergen sich eigentlch hinter dem normalen Umbruch und dem einfachen umbruch?

    Es gibt nur einen Typ Zeilenumbruch. Das ist unter Unixen und MacOS > Version 10 \n (LF) und unter Windows \r\n (CR+LF).

    Ein so genannter Absatz wird häufig über einen doppelten Zeilenumbruch repräsentiert, vielleicht ist das auch hier gegeben. (Wobei ich mich nun frage, was eine Textverarbeitung mit CSV-Dateien zu tun hat.)

    Und wie geht man am besten hier vor?

    Man stelle uns eine minimale Beispieldatei vor, so dass wir das Problem nachvollziehen können.

    Einen schönen Freitag noch.

    Gruß, Mathias

    --
    ie:% fl:| br:< va:) ls:& fo:) rl:( n4:~ ss:) de:] js:| mo:| zu:)
    debian/rules
    1. Hallo Mathias

      danke für die antwort

      in einem Textverarbeitungprogramm gibt es doch einmal return und return&shift   --> die werden dort unterschiedlich dargestellt.
      was sich dahinter verbirgt, weiß ich nicht..vielleicht das was du meintest.

      hier ist auf jedenfall die bsp datei:

      Variante1: --- das textprgramm zeigt gleiche Umbrüche an

      "06.06.2007";"08.06.2007";"Lastschrift
      hjhjkhkhjkh
      hjkhjkhjkh
      hjkhjkh";"EUR";"00,00";"S"
      "02.04.2007";"30.03.2007";"Abschluss
      hjhhjhjkhjh";"EUR";"00,20";"S"
      "12.01.2007";"12.01.2007";"Entgelt/Auslagen";"EUR";"00,00";"S"
      "29.12.2006";"30.12.2006";"Abschluss";"EUR";"00,27";"S"
      "12.12.2006";"12.12.2006";"hkjhkjh
      hjkhjhk
      hjkhkj";"EUR";"00,00";"S"
      "12.12.2006";"12.12.2006";"Übertrag";"EUR";"00,00";"H"
      "12.12.2006";"12.12.2006";"Übertrag";"EUR";"00,00";"H"

      "12.12.2006";;Anfangssaldo;"EUR";"00,98";S
      "06.06.2007";;Endsaldo;"EUR";"00,55";H

      Variante1: --- das textprgramm zeigt 2 verschiedene arten von Umbrüchen an

      ;;;;;
      06.06.07;08.06.07;"Lastschrift
      hjhjkhkhjkh
      hjkhjkhjkh
      hjkhjkh";"EUR";0;"S"
      02.04.07;30.03.07;"Abschluss
      hjhhjhjkhjh";"EUR";0,2;"S"
      12.01.07;12.01.07;"Entgelt/Auslagen";"EUR";0;"S"
      29.12.06;30.12.06;"Abschluss";"EUR";0,27;"S"
      12.12.06;12.12.06;"hkjhkjh
      hjkhjhk
      hjkhkj";"EUR";0;"S"
      12.12.06;12.12.06;"Übertrag";"EUR";0;"H"
      12.12.06;12.12.06;"Übertrag";"EUR";0;"H"
      ;;;;;
      12.12.06;;"Anfangssaldo";"EUR";0,98;"S"
      06.06.07;;"Endsaldo";"EUR";0,55;"H"

      was denkt ihr?

      carsten

      1. hallo noch einmal

        habe nun gerade probiert die Beispiele herauszukopieren und habe festgestellt, dass es dort eigentlich keinen Unterschied gibt...

        es ist wohl so wie du sagtest , dass textverarbeitungsprogramme doppelte umbrüche benutzen, um einen absatz zu markieren.

        aber trotzdem scheint das  Problem da zu sein, dass
        fgetcsv() nicht mit Umbrüchen in einem "textbereich"  klarkommt, wie in dem bsp hier.

        06.06.07;08.06.07;"Lastschrift
        hjhjkhkhjkh
        hjkhjkhjkh
        hjkhjkh";"EUR";0;"S"

        carsten

        1. echo $begrüßung;

          aber trotzdem scheint das  Problem da zu sein, dass fgetcsv() nicht mit Umbrüchen in einem "textbereich"  klarkommt

          Hast du vielleicht vergessen, die Parameter $delimiter und $enclosure von fgetcsv() zu versorgen? Ich kann das Problem mit passenden Werten in Version 5.2.2 nicht nachvollziehen.

          echo "$verabschiedung $name";