CSV-Import: Trennzeichen ändern, Trennzeichen/Zeilenumbrüche schützen
Eingetragen von Samson1964 (51)
am 25.07.2012 - 17:20 Uhr in
am 25.07.2012 - 17:20 Uhr in
Bei Feeds gibt es beim Trennzeichen nur die Wahl: ; , TAB
Wie kann ich das ändern, wenn ich stattdessen z.B. | oder % haben möchte?
Eine Unterfrage dazu: Wie maskiere ich , ; oder TAB im Datensatz, wenn dies kein Trennzeichen ist?
Wie maskiere ich Zeilenumbrüche im Import? Das Unix-LF dient ja als Trennzeichen zwischen den einzelnen Datensätzen. Doch wie kann ich LF im Datensatz selbst verwenden? \n oder \r\n - oder muß ich <br>
schreiben?
Ergänzung: Problem 1 habe ich mit einem Patch der FeedsCSVParser.inc behoben. Bleiben die Probleme 2 und 3.
- Anmelden oder Registrieren um Kommentare zu schreiben
Texte werden bei CSV mit "
am 26.07.2012 - 14:23 Uhr
Texte werden bei CSV mit " eingerahmt. Die innere Struktur bleibt dann bei Feeds vollständig erhalten inklusive der Zeilenumbrüche.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Aha, wieder eine neue
am 26.07.2012 - 18:57 Uhr
Aha, wieder eine neue Erkenntnis. Das konnte ich bisher nirgends nachlesen.
Ich habe jetzt um alle meine Spalten " gemacht. Der Import brint aber nur das gleiche Ergebnis wie bisher. Von 340 Datensätzen werden 17 importiert und 28 bemängelt. Ergibt 45. Die fehlenden 295 Datensätze verstecken sich in den 17 importierten Datensätzen. Ich hatte erst die Vermutung Feeds würde die Zeilen nicht komplett einlesen (fgets hat ja eine 8kB-Schallmauer), aber trotz Patchings von fgets (auf 100.000 Byte) ändert sich nichts.
Deshalb hätte ich mal kurz und knapp eine genaue Beschreibung des erforderlichen CSV-Formats. Ich fasse mal meine bisherigen Erkenntnisse zusammen:
Dazu meine Fragen:
Viele Grüße
Frank
Sieh mal in Deinen
am 26.07.2012 - 19:17 Uhr
Sieh mal in Deinen Briefkasten.
Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Briefkasten ist gut - links
am 26.07.2012 - 20:34 Uhr
Briefkasten ist gut - links im Menü habe ich sowas nicht. Aber vielleicht hast Du ja eine Email geschickt.
Ich habe mir noch mal die Wikipedia durchgelesen und mein CSV-Exportskript entsprechend angepaßt. Jetzt läuft der Import einwandfrei durch - alle 340 Datensätze. Jetzt gehts an die Feinheiten, die ich noch nirgends dokumentiert gesehen habe: wie die einzelnen Spalten aussehen müssen - für Boolean, Taxonomy-Werte, Datum (na ja ist klar - Unixtime) usw.
Weiterhin gibt es ja noch das Bildproblem mit der falschen URL (Link): Drupal "erdreistet" sich einfach mein Bild in ein anderes Verzeichnis umzukopieren.
Viele Grüße
Frank
Zeilenumbrüche innerhalb Textspalten
am 12.12.2013 - 13:07 Uhr
Hallo Samson1964,
bei dem Versuch Datensätze per Feeds (CSV) zu Importieren sind exakt die gleichen Fragen aufgetreten, wie du sie oben formuliert hast. Diese konnte ich weitestgehend ausräumen. Eine Frage bleibt allerdings:
- Müssen (Unix-)Zeilenumbrüche innerhalb von Textspalten entfernt/geschützt werden?
Es will einfach nicht gelingen, Text samt Umbrüchen in ein Textfeld zu importieren. Die Zeichen "\n" werden stehts als reiner Text dargestellt, nicht aber als Umbruch innerhalt eines Textfeldes. Wie machst du das? Vielleicht hat aber auch jemand anderes noch einen Tip für mich.
Unix Umbrüche im HTML-Text
am 12.12.2013 - 14:47 Uhr
Unix Umbrüche im HTML-Text nutzen Dir gar nichts. Da braucht es stattdessen ein
<br />
. Das läßt sich aber mit dem Moduls feeds_tamper beim Import umsetzen.Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ich verweise auch auf Werners
am 12.12.2013 - 14:56 Uhr
Ich verweise auch auf Werners Antwort auf mein Ausgangsproblem. Innerhalb einer Spalte, die durch " begrenzt wird, kann man ganz normale Zeilenumbrüche machen. Genauso hatte ich es später auch gemacht, nachdem ich mir das CSV-Format etwas genauer reingezogen hatte.
P.S. Ich hatte meine Drupalversuche nach einem halben Jahr abgebrochen und bin jetzt bei Contao seßhaft geworden. Es ist einfacher zu administrieren, sieht im Backend schicker aus und bringt von Hause aus mehr Funktionen im Kern mit. Contao hat allerdings so gut wie keine Import-Module.
Viele Grüße
Frank
Danke für die beiden
am 12.12.2013 - 15:37 Uhr
Danke für die beiden Antworten!
Vielleicht habe ich es auch etwas schlecht ausgedrück. Ich habe Datensätze importiert, die im Textfeld ein "\n" enthalten (war in einer SQL-Source-Datei so vorgegeben). Diese kann ich auch per "Suchen & Ersetzen" in
<br />
umwandeln lassen. Das ist soweit kein Problem. Wenn ich nach dem Import den Text editieren will, werden mir die<br />
's im Textfeld mit ausgegeben, was das Ganze sehr unübersichtlich macht (kein WYSIWYG-Editor im Einsatz). Ich bin davon ausgegangen, das mir der Text im Edit-Modus gleich mit entsprechenden Umbrüchen angezeigt wird. So passiert es ja auch, wenn ich eine neue Node erstelle und hier die "Enter"-Taste verwende. Die Umbrüche werden in der Datenbank als "\n" gespeichert und im Edit-Modus im Textfeld nicht mit ausgegeben, sondern eben als Zeilenumbruch dargestellt. Nur für importierte Daten will das nicht funktionieren...Dann solltest Du das Eingabe
am 12.12.2013 - 17:38 Uhr
Dann solltest Du das Eingabe Format bei diesem Feld auf Full-HTML stellen. Andernfalls wirft Drupal des
<br />
vor der Ausgabe raus. Du kannst aber auch das<br />
als zulässiges Tag bei Filtered HTML eintragen.Beste Grüße
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Ok, aber wo liegt der
am 12.12.2013 - 18:37 Uhr
Ok, aber wo liegt der Unterschied zwischen
a) einem
<br />
, der importiert wurde und im Edit-Modus angezeigt wird undb) einem per "Enter"-Taste gesetzten Umbruch beim Erstellen einer neuen Node, den ich nicht als
<br />
sehe, sondern als Leerzeile bzw. Zeilenumbruch?Bsp. zu a) Anzeige im Edit-Modus:
Mein Text
<br />
steht hier<br />
und sieht gut aus.Bsp. zu b) Anzeige im Edit-Modus:
Mein Text
steht hier
und sieht gut aus.
Dieses Verhalten ist unabhängig davon, ob ich Full HTML oder Filtered HTML einsetze.