Ouvrir le fichier JMP à l'aide d'une variable et d'un caractère générique<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Après avoir invité l'utilisateur à sélectionner un fichier texte, le fichier est ouvert et une variable est créée en fonction du nom du site contenu dans ce nom de fichier de données texte comme suit
dt.rawdata = Ouvrir (
Choisir un fichier (......
)
);
// Crée une chaîne qui est le nom du fichier
dtname = dt.rawdata << Obtenir le nom ;
// Crée une variable appelée siteid qui supprime uniquement le nom du site du nom de fichier
Si( Mot( 1, nomdt, "_" ) == "UC",
identifiant du site = "UC_" || Mot( 2, nomdt, "_" ),
ID du site = Word( 1, nomdt, "_" )
);
Ce avec quoi j'ai du mal maintenant, c'est comment ouvrir un fichier de données JMP dont le nom contient l'ID de site qui vient d'être déterminé.Il y a environ 40 fichiers de données .xls et .jmp dans un répertoire et j'essaie d'ouvrir le seul fichier JMP qui contient l'ID du site dans le nom de fichier comme suit
où ? est un caractère générique pour la chaîne de texte qui suit les données LTEM.Les noms de fichiers suivent le format siteid LTEM Data, yyyy - YTD.jmp où yyyy fait référence à l'année de début et varie en fonction de l'identifiant du site.
dt.metplots = Ouvert(
"$dir_metplots/" || identifiant du site || « Données LTEM ? » || ".jmp"
);
Existe-t-il un caractère générique qui peut être utilisé pour cela ou existe-t-il un autre moyen intelligent d'y parvenir ?Merci d'avance.
Re : Ouvrir un fichier JMP à l'aide d'une variable et d'un caractère génériqueMerci MS,
Cela fonctionne très bien.Je me demandais comment, avec le code fourni, il avait réussi à récupérer les fichiers JMP corrects même si de nombreux autres fichiers avec le préfixe siteid existaient.Il s'avère que c'est par chance que le fichier correct que je souhaite ouvrir soit le premier répertorié avec le préfixe siteid.Ainsi, pour m'assurer d'avoir ouvert le fichier JMP au cas où le premier fichier correspondant à siteid dans la liste n'était pas un fichier JMP, j'ai ajouté le code Ends With suivant.
Pour( je = 1, je <= n, je++,
Si( ET( Commence par( fichiers , siteid ), se termine par (fichiers , "jmp" ) ),
nom de fichier = fichiers ;
Casser();
)
);
J'ai beaucoup appris grâce à ce petit exercice.Merci encore pour votre aide.
Re : Ouvrir un fichier JMP à l'aide d'une variable et d'un caractère génériqueJe ne pense pas que les caractères génériques puissent être utilisés ici.
Peut-être que cette approche fonctionne pour vous (premières commandes simplement copiées ci-dessus) :
dt.rawdata = Ouvrir ( Choisir un fichier ()) ;
// Crée une chaîne qui est le nom du fichier
nom_dt = dt.rawdata << Obtenir le nom ;
// Crée une variable appelée siteid qui supprime uniquement le nom du site du nom de fichier
Si ( Mot ( 1 , nom_dt , "_" ) == "UC" ,
ID du site = "UC_" || Mot ( 2 , nom_dt , "_" ) ,
ID du site = Mot ( 1 , nom_dt , "_" )
) ;
// Crée une liste de fichiers dans le répertoire
chemin = "$dir_metplots/" ;
des dossiers = Fichiers dans le répertoire ( chemin ) ;
n = N articles ( des dossiers ) ;
// Récupère le nom du fichier qui commence par l'ID du site actuel
Pour ( je = 1 , je <= n , je ++,
Si ( Commence avec ( des dossiers [ je ] , ID du site ) ,
nom de fichier = des dossiers [ je ] ;
Casser ()
)
) ;
// Fichier ouvert
dt.metplots = Ouvrir ( chemin || nom de fichier ) ;