Kurzfassung: Die CSV-Dateien, die ich bearbeite, enthalten gelegentlich Textzeichenfolgen, die ein Komma enthalten.
Die JSL, die ich geschrieben habe, um diese Tabelle zu öffnen, teilt die Zeichenfolge sehr sauber am Komma auf und sendet den Teil nach dem Komma in die nächste Datenspalte – genau dorthin, wo er nicht hingehört.
Excel wird es beim Öffnen dieser Datei richtig machen.
Gibt es eine Möglichkeit, JMP/JSL dazu zu bringen, dieses eine Komma nur als Zeichen und nicht als Trennzeichen zu behandeln?
Oder anders ausgedrückt: Gibt es eine Möglichkeit, das folgende Skript so anzupassen, dass Kommas in Anführungszeichen als potenzielle Trennzeichen ignoriert werden?
Einzelheiten:
JMP 13.2.1, 64-Bit läuft unter Windows 7.
Auszüge aus der CSV-Datei:
Wenn Sie es als Text im Editor öffnen, enthält die fehlerhafte Zeile Folgendes:
...11:00,Übersprungen,"Licht weggeworfen, sie haben ein anderes Licht, das sie aufstellen werden",,,,
Hinweis: Soweit ich das beurteilen kann, sind die doppelten Anführungszeichen um den Testeintrag die einzigen in den Daten.
Was Excel zeigt und was ich von JMP erhoffe:
| Spalte 11 | Spalte 12 |
| Kommentar | Schädlingsfunde |
| Licht weggeworfen, sie haben ein anderes Licht, das sie aufstellen werden | |
Was JMP mir stattdessen gibt:
| Spalte 11 | Spalte 12 |
| Kommentar | Schädlingsfunde |
| Licht weggeworfen | Sie haben ein weiteres Licht, das sie aufstellen werden |
Spalte 12 / Schädlingsfunde sagt normalerweise etwas über gefundene Insekten, Mäuse usw. aus und sollte NICHT die hintere Hälfte des Kommentars anzeigen. In dieser Zeile sollte es leer sein.
Das Skript, das ich zum Öffnen der Tabelle verwende, lautet wie folgt:
Open(
qfull,
columns(
Column( "Company", Character, "Nominal" ),
Column( "Address", Character, "Nominal" ),
Column( "City", Character, "Nominal" ),
Column( "State", Character, "Nominal" ),
Column( "Zip", Character, "Nominal" ),
Column( "Area", Character, "Nominal" ),
Column( "Device Type", Character, "Nominal" ),
Column( "Device Name", Character, "Nominal" ),
Column( "Date", Numeric, Informat( "m/d/y h:m" ), "Continuous", Format( "ddmonyyyy", 19 )),
Column( "Date", Character, "Nominal"),
Column( "Activity", Character, "Nominal" ),
Column( "Comment", Character, "Nominal" ),
Column( "Pest Findings", Character, "Nominal" ),
Column( "Questions", Character, "Nominal" ),
Column( "Materials", Character, "Nominal" )
),
Import Settings(
End Of Line( CRLF, CR, LF ),
End Of Field( Comma, CSV( 1 ) ),
Strip Quotes( 0 ),
Use Apostrophe as Quotation Mark( 0 ),
Use Regional Settings( 0 ),
Scan Whole File( 1 ),
Treat empty columns as numeric( 0 ),
CompressNumericColumns( 0 ),
CompressCharacterColumns( 0 ),
CompressAllowListCheck( 0 ),
Labels( 1 ),
Column Names Start( 7 ),
Data Starts( 8 ),
Lines To Read( "All" ),
Year Rule( "20xx" )
)
);
Gibt es eine Möglichkeit, dieses Skript so anzupassen, dass Kommas in Anführungszeichen als mögliche Trennzeichen ignoriert werden?
Ich habe ein ähnliches Problem, aber nicht in einem Skriptkontext. Ich öffne eine Triple-S-Datei, die mit einer CSV-Datendatei verknüpft ist. Offene Daten werden gemäß CSV-Standards ordnungsgemäß in Anführungszeichen gesetzt, JMP interpretiert die Kommas in den in Anführungszeichen gesetzten Zeichenfolgen jedoch immer noch als Feldtrennzeichen.
Z.B
123456,1,"Lorem ipsum dolor sit amet, consectetuer...",3,5
Wird in 6 Spalten statt in die korrekten 5 Spalten analysiert.
Ich habe in den Einstellungen mit den verschiedenen Importeinstellungen für Textdateien herumgespielt, aber ohne Erfolg.
Alle Gedanken wären willkommen. Danke!