Bonjour, quelqu'un peut-il m'aider à modifier ce code ?J'essaie de concaténer des fichiers CSV par dossier. L'utilisateur devra sélectionner un dossier et tous les dossiers csv qualifiés seront concaténés et enregistrés en fonction du nom du dossier. Cette méthode permet à l'utilisateur de choisir un dossier par exécution de script.
Cependant, ce que j'essaie de faire maintenant est de demander à l'utilisateur de choisir le dossier principal, puis d'exécuter le script et de concaténer les données par sous-dossiers (en les enregistrant individuellement avec son nom de dossier comme nom de fichier comme dans la méthode précédente).
Mais avec ce code, tous les fichiers csv sont concaténés en un seul fichier. Pouvez-vous nous aider à modifier et expliquer le fonctionnement récursif ? Et comment puis-je enregistrer ces fichiers individuellement (concaténer les données par dossier) en ouvrant simplement le dossier principal. J'utilise JMP 15. Merci
p = pick Directory("Select a Folder");<BR />//f = Files In Directory(p);
f = Files In Directory(p, recursive(1));
Dir = Word(-1, p, "/"); //get filename
saveDir = Substr( p, 1, Length( p ) - Length( Word( -1, p, "\/" ) ) - 1 ); //save file outside main folder
/* Removes the file names from the list f which are not CSV files */
for(j=1,j<=N Items(f),j++,
If (Substr(f[j],Length(f[j])-2,3)!= "CSV",
RemoveFrom(f,j,1);
j=j-1;
);
);
A = {}; /* creates a empty list for storing the names of each data table */
B = {};
C = {};
D = {};
k = {};
m = {};
/*Opens each one of the CSV files and deletes all unwanted rows */
for(j=1,j<=N Items(f),j++,
CSV = Open(Concat(p,f[j]), End of Field(comma), Strip Quotes(1), Labels(1),
Column Names Start(3), Data Starts(4), Columns(:MRR=Numeric));
colname = {};
colname = CSV<<GET column="" names="">20 & Contains(colname,"Weight")>50,
InsertInto(A,CSV);
CSV<<SELECT where="">1,
dt2 = dt1<<CONCATENATE>1,
dt3 = dt1<<CONCATENATE></CONCATENATE></CONCATENATE></SELECT></GET>