Importieren Sie mehrere CSV-Dateien in einen Ordner und stapeln Sie sieHallo zusammen,
Ich habe ein Problem mit meinen CSV-Dateien, die ein seltsames Trennzeichen ( "," ) haben und bei dem ich nicht herausfinden kann, wie ich JMP dazu bringen kann, es automatisch zu importieren .
Mein Ziel ist es, einen Ordner mit mehreren CSV-Dateien mit derselben Struktur und denselben Spaltennamen auszuwählen, alle Daten zu importieren und sie zu stapeln.
Ich habe eine CSV-Datei angehängt, die meiner Datei ähnelt.
Hoffe ihr könnt mir helfen:)
Grüße, Christian
Automatisierung und SkriptingDatenzugriffMassenanpassungBetreff: Mehrere CSV-Dateien in einen Ordner importieren und stapelnDarüber hinaus kommen die Anführungszeichen als 1, 2 und 3:

Vielleicht ist die beste Lösung, den Dateiexport zu reparieren : )
Eine andere Lösung: Verwenden Sie "Notepad ++" / Ersetzen in Dateien:

um die Anführungszeichen loszuwerden.
Betreff: Mehrere CSV-Dateien in einen Ordner importieren und stapelnIn JMP
Text in Spalten ist DAS Tool zum Umgang mit solchen Ansammlungen von Trennzeichen:
es ist egal, ob es " oder "","" oder """ ist
es behandelt mehrere Trennzeichen als ein einziges (!)
Dies kann sehr schädlich sein: Text in Spalten: Fehlende Daten richtig behandeln
... aber oft ist es genau das, was wir brauchen, wie hier.
Also,
a) Laden Sie die Dateien über MFI mit der Option „Zeile pro Zeile“
b) und verwenden Sie Text in Spalten mit Trennzeichen = ,"

dts = Multiple File Import(
<
<SET folder="">
</SET>
<BR />
Betreff: Mehrere CSV-Dateien in einen Ordner importieren und stapelnSie scheinen auch am Ende jeder Zeile "" zu haben und die erste Spalte hat nicht das Format ",", sondern ,".

Ich bin nicht sicher, ob dies für alle Ihre Dateien funktioniert, aber ich würde sie als Text behandeln, sie in "richtige" CSV-Dateien umwandeln und diese dann aus dem Speicher in eine JMP-Tabelle öffnen.
Names Default To Here(1);
filedir = "$DOWNLOADS\New folder (2)\";
csvfiles = {};
For Each({filename}, Files In Directory(filedir),
If(Ends With(filename, ".csv"),
Insert Into(csvfiles, filedir || filename);
);
);
dt_res = Empty();
For Each({csvfile}, csvfiles,
txt = Load Text File(csvfile);
lines = Words(txt, "\!N");
lines_fixed = Transform Each({line}, lines,
items = Concat items(Words(line, "\!","), ",");
);
csv_txt = Concat Items(lines_fixed, "\!N");
dt = Open(Char to Blob(csv_txt), "text", Invisible);
dt << Set Name(Word(-1, csvfile, "\/"));
If(Is Empty(dt_res),
dt_res = dt;
,
dt_res << Concatenate(
dt,
"Append to first table";
);
Close(dt, no save);
);
);
dt_res << Bring Window To Front;
Betreff: Mehrere CSV-Dateien in einen Ordner importieren und stapelnAh, richtig, Wörter() verwendet den gleichen Trick wie Text in Spalten() .
Betreff: Mehrere CSV-Dateien in einen Ordner importieren und stapelnTiefer graben:
Das Hauptproblem ist die

in den MFI-Einstellungen.
JMP freut sich über das erste und das letzte Anführungszeichen – und liest die gesamte Textzeile als eine Spalte (und behält dabei jedes zweite Anführungszeichen bei?!?):

Bearbeiten: erstes und letztes Anführungszeichen? Nein, es ist komplizierter – siehe unten!
Als schnelle Lösung kann man die CSV-Anführungszeichen-Einstellung auf ein anderes Zeichen ändern:

<
<SET csv="" quote=""></SET>
<P>und verwenden Sie das Anführungszeichen selbst als Trennzeichen:</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_2-1756463581618.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_2-1756463581618.png" style="width: 193px;"><img src="https://us.v-cdn.net/6038925/uploads/images/81530i4BF1266286F27E58/hogi_2-1756463581618.png" role="button" title="hogi_2-1756463581618.png" alt="hogi_2-1756463581618.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <P><BR />Dadurch kann JMP die Dateien lesen – aber:</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_3-1756463633644.png" style="width: 773px;"><img src="https://us.v-cdn.net/6038925/uploads/images/81531iE7879526B8F81200/hogi_3-1756463633644.png" width="773" height="87" role="button" title="hogi_3-1756463633644.png" alt="hogi_3-1756463633644.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <P>anders als <FONT face="courier new,courier">Wörter()</FONT> und <FONT face="courier new,courier">Text in Spalten()</FONT> behandelt <FONT face="courier new,courier">MFI</FONT> jedes (einzelne) Trennzeichen als Trennzeichen<BR /> mit der Idee: fehlende Daten = fehlende Daten, keine übersprungene Spalte!</P> <P>Danke MFI, für die meisten Dateien macht das Sinn : - )</P> <BR /> <P>Nicht hier – daher muss der Benutzer nach dem Import die leeren Spalten löschen.<BR /><BR /> Bitte beachten: Das Importieren der Datei mit einer leeren CSV-Angebotseinstellung funktioniert nicht.</P> <P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="hogi_4-1756463762291.png" style="width: 400px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><SPAN class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><span class="lia-inline-image-display-wrapper" image-alt="hogi_4-1756463762291.png" style="width: 158px;"><img src="https://us.v-cdn.net/6038925/uploads/images/81533iF2FFDC8A29503E1D/hogi_4-1756463762291.png" role="button" title="hogi_4-1756463762291.png" alt="hogi_4-1756463762291.png" /></span></SPAN></SPAN></SPAN></SPAN></SPAN></P> <CODE class=" language-jsl"><
<SET csv="" quote=""></SET> <P>JMP verwendet automatisch ein Anführungszeichen als CSV-Anführungszeichen und lädt die gesamte Datei als einzelne Spalte.</P>
Betreff: Mehrere CSV-Dateien in einen Ordner importieren und stapelnfür mehr Spaß mit MFI- und CSV-Kursen
verwenden Sie die angehängte Datei
Eingabe: JMP:

Sobald eine Hypothese aufgestellt wurde, die zu den Zeilen 1–N passt, ist es einfach, einen schwarzen Schwan für Zeile N+1 zu finden ...
Betreff: Mehrere CSV-Dateien in einen Ordner importieren und stapeln0. Wenn vor dem Anführungszeichen Zeichen stehen, handelt es sich nicht um ein CSV-Anführungszeichen.
- Wenn das erste Zeichen der Zelle ein Anführungszeichen ist, handelt es sich um ein CSV-Anführungszeichen -> scannen Sie, um das schließende Anführungszeichen zu finden
- Wenn auf Ihrem Weg zwei nebeneinander liegende Anführungszeichen stehen, behandeln Sie diese als ein einzelnes Anführungszeichen

- Wenn Sie auf Ihrem Weg ein Komma finden, ist es ein Komma
- Wenn Sie auf Ihrem Weg auf eine neue Zeile stoßen, ist es eine neue Zeile (!!)
Tatsächlich ist der Inhalt der Zelle:

- noch andere interessante Charaktere? ...
- Wenn Sie ein schließendes Anführungszeichen finden, ist das Zitat vollständig
- Suche nach einem Trennzeichen oder einem Zeilenumbruch.
jedes Zeichen, das Sie finden: Fügen Sie es einfach dem Zitat hinzu.
- hier: ein einfaches Anführungszeichen ist ein einfaches Anführungszeichen
- 2 Anführungszeichen sind 2 Anführungszeichen (vgl. #2)
- Wenn Sie ein Trennzeichen oder einen Zeilenumbruch finden, ist dies das Ende der Zelle (vergleiche #4)
- Mit einem Leerzeichen vor dem Zitat handelt es sich bei dem Zitat nicht um ein CSV-Zitat.
(Teilmenge von Nr. 0)
Es hat eine Weile gedauert, bis ich es verstanden habe 
aus dem vorherigen Beitrag, deshalb habe ich es als separaten Fall hinzugefügt.
CSV-Datei: JMP:

Betreff: Mehrere CSV-Dateien in einen Ordner importieren und stapelnAngesichts der neuen Erkenntnisse kommt mir die Datentabelle im Originalbeitrag nun bekannter vor:
Es ähnelt einer Datentabelle, die im ersten Schritt ('V1') mit Anführungszeichen exportiert wurde, die zu den numerischen und Zeichenspalten hinzugefügt wurden (nur die erste Spalte hat die zusätzlichen Anführungszeichen nicht erhalten:

Überraschenderweise:
V1 lässt sich per Drag & Drop in JMP und Excel öffnen. Beide Programme entpacken die CSV-Angebote automatisch und laden die Tabelle im richtigen Format. Wie gelangt man also von V1 zuCSV mit seltsamer sep.csv ?
Was funktioniert:
Schritt 2: Öffnen Sie V1 als tabulatorgetrennte Tabelle (anstelle einer CSV-Datei mit CSV-Anführungszeichen).
Schritt 3: Speichern Sie die Tabelle als CSV (in diesem Schritt [in JMP und Excel] werden die zusätzlichen Anführungszeichen am Anfang und Ende jeder Zeile automatisch hinzugefügt und einfache Anführungszeichen durch 2x Anführungszeichen ersetzt)
Der umgekehrte Vorgang sollte unkompliziert sein:
- Öffnen Sie einfach CSV mit seltsamer sep.csv in JMP oder Excel. Beide Programme entfernen die einschließenden Anführungszeichen automatisch, und doppelte Anführungszeichen werden wieder in einfache umgewandelt: So sieht es in Excel aus:

genau wie wir es wollen:

Speichern wir also die Datentabelle als CSV – und laden sie erneut : )
In JMP können wir die Optionen deaktivieren:
]
Leider ist die CSV-Kodierung standardmäßig aktiviert. Das ist zwar sinnvoll, würde das Speichern der Datei ohne CSV-Anführungszeichen die Datenstruktur jedoch erheblich verändern!
Aber eigentlich wollten wir das.
Die einzige Möglichkeit (?) besteht also darin, die Einträge aus JMP oder Excel in einen Texteditor zu kopieren und v1.txt von dort zu speichern.
Der Texteditor kennt keine CSV-Anführungszeichen und speichert den Text so, wie er ist.
Betreff: Mehrere CSV-Dateien in einen Ordner importieren und stapeln@hogi @jthi Vielen Dank für Ihre Antworten und Ihre Mühe! Es war noch schlimmer, als ich es mir vorgestellt hatte!
Ich werde einige Zeit damit verbringen müssen, Ihre Antworten durchzugehen, aber ich wollte Ihnen sofort danken:)
Grüße, Christian