j'obtiens une erreur
"Plage d'indice dans l'accès ou l'évaluation de 'openDTs[ /*###*/1]' , openDTs[/*###*/1]"
mais cela fonctionne sur certains dossiers et je n'obtiens pas l'erreur... Voici mon JSL
JSL"
dir = Set Default Directory("path");
Print(dir);
files = Files In Directory("path");
For(i = 1, i <= N Items(files), i++,
If(Ends With(files[i], ".txt"),
Open(
files[i],
Import Settings(
End Of Line(CRLF, CR, LF),
End Of Field(Comma),
Strip Quotes(0),
Use Apostrophe as Quotation Mark(0),
Scan Whole File(1),
Labels(0),
Column Names Start(1),
Data Starts(1),
Lines To Read(All),
Year Rule("10-90")
)
)
)
);
openDTs = List();
For(i = 1, i <= N Table(), i++,
Insert Into(openDTs, Data Table(i))
);
For(i = 1, i <= N Items(openDTs), i++,
openDTs[i] << New Column("Location", Character, Nominal, Set Each Value(dir));
openDTs[i] << New Column("FileName",
Character,
Nominal,
Set Each Value(openDTs[i] << Get path)
);
);
openDTs1 = openDTs[1];
Remove From(openDTs, 1);
Joined_new = openDTs1 << concatenate(openDTs, output table name("Joined_new"));
"
De plus, l'OpenDTs1 appelé ici devrait être « dts » ?
dt_final = openDTs1 << concatenate(dts, output table name("Joined_new"));
Tapez mon code, remplacez les fichiers[i] par
filepath
N'ai-je pas besoin de définir "i"..J'obtiens un nom non résolu pour i...

Se pourrait-il que certains de vos dossiers ne contiennent aucun fichier pouvant être transformé en table de données et qu'openDTs soit une liste vide ?
Modifier:
Vous pouvez ajouter une vérification et un arrêt si aucune table n'a été ouverte. J'ai apporté de légères modifications à votre script mais l'idée devrait toujours être la même à l'exception des vérifications finales après la boucle (nécessite JMP16+) et cela suppose que vous souhaitez utiliser uniquement les tables trouvées dans votre répertoire.
Names Default To Here(1);
dir = Set Default Directory("path");
files = Files In Directory("path");
dts = {};
For Each({filepath}, files,
If(Ends With(filepath, ".txt"),
dt = Open(
filepath,
Import Settings(
End Of Line(CRLF, CR, LF),
End Of Field(Comma),
Strip Quotes(0),
Use Apostrophe as Quotation Mark(0),
Scan Whole File(1),
Labels(0),
Column Names Start(1),
Data Starts(1),
Lines To Read(All),
Year Rule("10-90")
)
);
dt << New Column("Location", Character, Nominal, Set Each Value(dir));
dt << New Column("FileName", Character, Nominal, Set Each Value(dt << Get path));
Insert Into(dts, dt);
);
);
If(N Items(dts) == 0,
stop(); // stop here as no tables have been created
, N Items(dts) == 1,
dt_final = dts[1]; // only one table
, // else - more than one table
dt_first = Remove From(dts, 1)[1]; // Remove From returns a list -> take first index
dt_final = openDTs1 << concatenate(dts, output table name("Joined_new"));
);
Edit 2 : Correction de l'ouverture (fichiers [i] à ouvrir (chemin du fichier