Version courte : les fichiers CSV sur lesquels je travaille contiennent occasionnellement des chaînes de texte comprenant une virgule.
Le JSL que j'ai écrit pour ouvrir cette table divise très soigneusement la chaîne au niveau de la virgule et envoie la partie après la virgule dans la colonne de données suivante - exactement là où elle ne va pas.
Excel fera les choses correctement lors de l’ouverture de ce fichier.
Existe-t-il un moyen pour que JMP/JSL traite cette virgule comme un simple caractère et non comme un délimiteur ?
Ou en d'autres termes : existe-t-il un moyen d'ajuster le script ci-dessous afin que les virgules entre guillemets soient ignorées en tant que délimiteurs potentiels ?
Détails :
JMP 13.2.1, 64 bits fonctionnant sous Windows 7.
Extraits du fichier csv :
En l'ouvrant sous forme de texte dans le Bloc-notes, la ligne incriminée contient :
...11h00,Sauté,"Lumière jetée, ils ont une autre lumière qu'ils allumeront",,,,
Remarque : Pour autant que je sache, les guillemets doubles autour de l'entrée de test sont les seuls dans les données.
Ce que montre Excel et j'espère sortir de JMP :
| colonne 11 | colonne 12 |
| Commentaire | Résultats des ravageurs |
| Lumière jetée, ils ont une autre lumière qu'ils allumeront | |
Ce que JMP me donne à la place :
| colonne 11 | colonne 12 |
| Commentaire | Résultats des ravageurs |
| Lumière jetée | ils ont une autre lumière qu'ils vont allumer |
Colonne 12 / Les découvertes d'organismes nuisibles indiqueraient normalement quelque chose sur les insectes trouvés, les souris, etc. et ne devraient PAS afficher la moitié arrière du commentaire. Il devrait être vide sur cette ligne.
Le morceau de script que j'utilise pour ouvrir la table est le suivant :
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" )
)
);
Existe-t-il un moyen d'ajuster ce script afin que les virgules entre guillemets soient ignorées en tant que délimiteurs potentiels ?
J'ai un problème similaire mais pas dans un contexte scripté. J'ouvre un fichier Triple-S lié à un fichier de données CSV. Les données ouvertes sont correctement citées selon les normes CSV, mais JMP interprète toujours les virgules à l'intérieur des chaînes citées comme séparateurs de champs.
Par exemple
123456,1,"Lorem ipsum dolor sit amet, consectetuer...",3,5
Est analysé en 6 colonnes au lieu des 5 colonnes correctes.
J'ai joué avec les différents paramètres d'importation des fichiers texte dans les préférences, mais sans effet.
Toute réflexion sera apprécié. Merci!