Copy link to clipboard
Copied
Bonjour,
J'ai écris un script qui fait un csv avec certaines métédonnées des fichiers d'un dossier. Ca fontionne sauf quand le texte récupéré d'un champ comporte des virgules, car chaque virgule va être interpêtée comme un séparateur et va créer une colonne supplémentaire dans le csv.
Comment puis-je récupérer le texte avec virgules sans créer de colonne supplémentaire, pour qu'il reste donc dans une seule cellule ?
Puis-je "forcer" le csv à utiliser un autre séparateur ?...
Et j'ai besoin du format csv, sinon le problème serait réglé avec le format .txt...
Merci par avancce de vos informations.
Utilise des " " pour isoler le texte contenant des virgule.
"Musée des Beaux-Arts, le Nouveau-né de Georges de la Tour.", Colonne2, Colonne3
Musée d'Orsay, Colonne2, Colonne3
I see, then yes, just write to the cell as:
f.write('"' + title + '"');
Copy link to clipboard
Copied
If the value you are writing has a comma in it, you should use " around the value. I think most CSV readers will treat something like "cell1,stuff" as a single cell.
Copy link to clipboard
Copied
Si je comprends bien :
Je récupéres 2 champs de matadonnées (Titre et Copyright), et chacune avec une variable. Pour chaque variable je pourrai utiliser une regex de type .replace() pour insérer des guillements autour des virgules.
A essayer, je n'ai pas le temps tout de suite mais dès que je peux je teste 🙂
Copy link to clipboard
Copied
If you are combining Title and Copyright into one cell, separated by a comma, you would write the value as "Title, Copyright"
So, essentially: '"' + title + ", " + copyright + '"';
Copy link to clipboard
Copied
Merci pour cette info. En fait je n'ai pas besoin de regrouper ces 2 éléments dans une seule cellule.
Ils doivent chacun rester dans une cellule, mais le problème vient que parfois ces textes contiennt des virgules.
Par exemple, le texte du champs de la métadonnée "Title" peut contenir ceci : "Musée des Beaux-Arts, le Nouveau-né de Georges de la Tour."
--> Et une fois dans le csv cette virgule va créée une colonne supplémentaire...
Copy link to clipboard
Copied
Mais je dois faire face à un nouveau problème 🙂 :-)...
Comme je travaille sur 2 postes, le script ne récupère plus les métadonnées sur celui-ci...
Cela marchait pourtant sur l'autre ordinateur :
// (...)
var myFiles = myAllFilesList; //(myAllFiles = myFolder.getFiles(); )
for (var i=0; i<myFiles.length; i++) {
var myF = myFiles[i];
if (myF instanceof File ) {
xmpFile = new XMPFile(myF.fsName, XMPConst.UNKNOWN, XMPConst.OPEN_FOR_READ);
var myXmp = xmpFile.getXMP();
xmpFile.closeFile(XMPConst.CLOSE_UPDATE_SAFELY);
var myT = myXmp.getProperty(XMPConst.NS_DC, "title[1]");
// (...)
Il faut être patient et obstiné 🙂 🙂 :-)...
Copy link to clipboard
Copied
Utilise des " " pour isoler le texte contenant des virgule.
"Musée des Beaux-Arts, le Nouveau-né de Georges de la Tour.", Colonne2, Colonne3
Musée d'Orsay, Colonne2, Colonne3
Copy link to clipboard
Copied
I see, then yes, just write to the cell as:
f.write('"' + title + '"');
Copy link to clipboard
Copied
Merci bien ! En effet les doubles guillemets fonctionnent, tant sous InDesign que Bridge.
Le csv créé (ici sous la variable "C") va récupérer le contenu de "texts" :
C.write(texts);
// --> Et voici ce que contient "texts" - à l'intérieur d'une boucle :
(...) { texts += decodeURI (myF.name)+";"+decodeURI (myF.parent.name)+";"+""+myT+""+";"+""+myR+""+"\r" };
// --> Il faut également dédoubler les opérateurs "+"avec les délimiteurs pour que cela fonctionne : ...+";"+""+myT+""+";"+""+myR+""+"\r"...
(Les variables myT et myR ramènent 2 champs de métadonnées du fichier).