9 Antworten Neueste Antwort am Apr 14, 2016 6:23 AM von Ben

    "Return" fehlerhaft bei Funktion "Liste"

    tonimedia

      Hi,

      ich möchte Daten als CSV exportieren, um sie auf einem Typo3 System zu importieren.

      Mit einer Formel kreiere ich für jeden Datensatz eine komplette Zeile. Anschliessend fasse ich mit dem Befehl "Liste (....)" alle zu exportierende Zeilen zusammen. Mit einem Script exportiere ich dann ca. 25 Dateien als "Tabulatorgetrennter Text" mit der Endung ".CSV". Das funktioniert soweit ganz gut aber leider gibt es hierbei einen unangenehmen Fehler:

      Das Zeichen, dass bei "Liste" für "nächster Datensatz" verwendet wird, ist kein sauberes "Return" (also ein "CR" oder "LF"). In fast allen Anwendungen, mit denen ich die CSV-Datei öffne, erscheinen daher alle Datensätz in einer einzelnen Zeile. Einzig die Anwendung "Notepad" unter Windows erkennt das "Return" und öffnet die Daten richtig. Dann muß ich die Daten hier erneut speichern um eine funktionierende CSV-Datei zu erhalten.

      Diese Vorgehensweise funktioniert so bereits seit 5 Jahren unter FM 11 auf einem Windows XP-Rechner. Nun steht der Umzug auf FM 14 unter MacOS an. Leider tritt der Fehler hier ebenfalls auf. Kennt jemand das Problem? Gibt es einen Work-Around?

      VG Andreas

        • 1. Re: "Return" fehlerhaft bei Funktion "Liste"
          Ben

          Hallo Tonimedia,

           

          erstmals - ich muss mich für mein schlechte deutsch entschuldige!

           

          Vielleicht habe ich falsche verstanden - aber ich denke das Liste() nicht notwendig ist: Sie können per Skript einfach den aktuelle gefundene Datensätz als CSV exportieren.

          • 2. Re: "Return" fehlerhaft bei Funktion "Liste"
            tonimedia

            Hallo Ben,

            an der Funktion Liste() komme ich leider nicht dran vorbei, da ich zusätzlich noch weitere Informationen in diese Datei exportieren muß.

            Andreas

            • 3. Re: "Return" fehlerhaft bei Funktion "Liste"
              erolst

              Nach dem Kompilieren mit Liste()

               

              Austauschen ( text ; schlechtesReturn ; passendesReturn )

               

              ? Wenn du die Codes kennst, kannst du dort auch Char()s übergeben.

              • 4. Re: "Return" fehlerhaft bei Funktion "Liste"
                Markus Schneider

                anstelle der 'Liste' ein Hilfsfeld (oder eine Hilfstabelle -> virtuelle Liste)

                - das Feld beinhaltet alle gewuenschten Werte, auch die ',' als Trenner

                - dann exportieren dieser Datensaetze mit diesem einen Feld

                • 5. Re: "Return" fehlerhaft bei Funktion "Liste"
                  tonimedia

                  Hallo Erolst,

                  das mit dem Austauschen habe ich jetzt ausprobiert. Das von Liste() verwendete Zeichen ist char(13). Ich kann danach suchen und es durch ein beliebiges Anders ersetzen. Das funktioniert. Leider ist char(13) der eigentlich benötigte <cr> (CarriageReturn).

                  Da ich mittlerweile auf ein Problem beim Export tippe, hab ich verschiedene Export-Formate ausprobiert (Tab-Text, Kommagetrennt, Serienbrief) und auch unterschiedliche ZeichenCodierungen (Ansi, UTF-8 usw.) hab ich durch. Immer mit dem selben Ergebnis:

                   

                  mein Import-Script auf dem WebServer funktioniert nicht.

                  Excel (Mac) stürzt beim Öffnen ab.

                  OpenOffice (Mac) legt nur eine Zeile an - aber mit endlosen Spalten.

                  TextWrangler (Mac) zeigt mir das Zeichen als rotes, auf dem Kopf stehendes Fragezeichen an.

                  TextEdit (Mac) erkennt den Umbruch. Beim Speichern bleibt der Umbruch aber fehlerhaft. Nur die Umbrüche, die ich von Hand neu mache, werden anschliessen im TextWrangler richtig erkannt - falsche bleieben falsch.

                  Anders beim WordPad (PC): Umbruch wird erkannt und korrekt umgewandelt, so dass beim Speichern das Dokument ok ist. Da ich aber den Prozess automatisieren möchte, möchte ich diesen Umweg nur gehen, wenn es wirklich nicht anders geht.

                   

                  Ist das ein Problem, mit dem man sich an die Entwickler wenden sollte?

                   

                  Andreas

                  • 6. Re: "Return" fehlerhaft bei Funktion "Liste"
                    Ben

                    Hallo Andreas,

                     

                    leider habe ich keine direkten Antwort, aber - kannst du den zuzätlich benötigte information in einem neuen text feld integrieren, inclusive benötigte Trennzeichen, bevor den Export? Ich habe immer gute Erfahrung mit den Filemaker export.

                     

                    Mit ihre Problem tippe ich auf eine Text Codierung problem. Versuche mit Texwrangler oder Textmate raus zu finden was für eine Unicode Nummer FileMaker "Sendet" als Zeilenumbruch.

                    • 7. Re: "Return" fehlerhaft bei Funktion "Liste"
                      erolst

                      tonimedia wrote:

                      Ist das ein Problem, mit dem man sich an die Entwickler wenden sollte?

                       

                      Das wäre sicher ein Weg.

                       

                      Was du noch versuchen könntest, wäre das als richtig erkannte Zeichen manuell zu kopieren und als String in die Austausch-Logik einzufügen (also in das Filemaker-Dialogfenster, wo du “Austauschen” definierst).

                       

                      Un du könntest natürlich deine Frage auf Englisch formulieren und sie im allgemeinen (englischsprachigen) Forum posten; da dürfte die Resonanz um einiges größer sein.

                       

                      Sorry dass ich dir hier nicht besser helfen kann.

                      • 8. Re: "Return" fehlerhaft bei Funktion "Liste"
                        tonimedia

                        Ich hab das Problem jetzt mal ins englische übersetzt.

                        Exporting tab-text with strange/wrong Carriage Return

                         

                        TextMate zeigt mir übrigens folgendes an:

                        Bildschirmfoto 2016-04-14 um 09.30.40.png

                        Ich konnte feststellen, dass ^K = char(11) ist - also ein "vertical Tab". Egal was ich auch versuche: in FileMaker selbst ist ein Return immer ein char(13). Erst beim Export wird es zu char(11)... Das hatte bestimmt mal einen Grund, wenn das so programmiert wurde. Heutzutage setze ich aber vor und hinter den Datensatz einfach ein Anführungszeichen, und das Return dazwischen wird nicht fälschlicherweise als Datensatz-Trenner erkannt...

                        • 9. Re: "Return" fehlerhaft bei Funktion "Liste"
                          Ben

                          Hi Andreas,

                           

                          I am going to switch to your English post - easier for me ;-)

                          Ben