Ouvrez plusieurs fichiers, puis renommez les colonnes de toutes les tablesJ'ai un script qui donne à l'utilisateur la possibilité de sélectionner plusieurs fichiers du même type, de les ouvrir puis de renommer les colonnes. La sélection et l'ouverture des fichiers fonctionnent correctement, mais renommer les colonnes pose problème. Voici ce que j'ai jusqu'à présent.
Names Default To Here( 1 );
Files = Pick File(
"Select File(s)",
"C:\Users\dkraeuter\Desktop\Temp\Test",
{"All Files|*"},
1,
0,
"",
"multiple"
);
y = {"Test", "Run", "Model"};
For( i = 1, i <= N Items( Files ), i++,
Try( Open( Files[i], "text" ) );
dt = Current Data Table() // Use Current Data Table;
For( n = 1, n < 56, n++,
:Column( n ) << Set Name( y[n] )
);
);
Re : Ouvrir plusieurs fichiers puis renommer les colonnes de toutes les tablesRecevez-vous des erreurs dans le journal ?
Re : Ouvrir plusieurs fichiers puis renommer les colonnes de toutes les tablesBonjour Jim, pourriez-vous m'aider avec les éléments ci-dessous :
Que se passe-t-il si j'importe 2 tables de données et que je souhaite changer le nom des colonnes dans les deux... la section du script ci-dessous ne fonctionnera-t-elle pas ? Dans l’état actuel des choses, cela modifie uniquement le nom des colonnes d’une table mais pas de l’autre.
dt1 = Tableau de données (1) ;
dt1 << sélectionner où( :Result_Valid != 1 );
dt1 << masquer et exclure ;
dt1 << sélectionner exclu ;
dt1 << supprimer les lignes ;
dt1 << définir le nom ("Données 2");
dt1 << Supprimer les colonnes( "Numéro de pièce", "ID unique");
dt1 << Texte en colonnes (délimiteur ( "_" ), colonnes ( : Nom du fichier ),);
dt1 = :Nom du fichier 1 << nom du jeu ("Exécution");
dt1 = :Nom du fichier 2 << définir le nom ("Dimension");
dt1 = :Nom du fichier 3 << nom du jeu ("Type de données");
dt2 = Tableau de données (2) ;
dt2 << sélectionner où( :Result_Valid != 1 );
dt2 << cacher et exclure ;
dt2 << sélectionner exclu ;
dt2 << supprimer les lignes ;
dt2 << définir le nom ("Données 1");
dt2 << Supprimer les colonnes( "Numéro de pièce", "ID unique");
dt2 << Texte en colonnes (délimiteur ( "_" ), colonnes ( : Nom du fichier ),);
dt2 = :Nom du fichier 1 << nom du jeu ("Exécution");
dt2 = :Nom du fichier 2 << définir le nom ("Dimension");
dt2 = :Nom du fichier 3 << nom du jeu ("Type de données");
Re : Ouvrir plusieurs fichiers puis renommer les colonnes de toutes les tablesVotre liste Y ne contient que 49 éléments et vous essayez d'accéder à 56.L'autre possibilité est que le tableau de 50 données que vous lisez comporte > 49 colonnes pour la première fois.Vous devez vérifier cela dans le code et parcourir uniquement 49 colonnes, ou si la table de données contient moins de colonnes, boucler uniquement 1 à travers le nombre de colonnes.
Re : Ouvrir plusieurs fichiers puis renommer les colonnes de toutes les tablesJ'utilise le script et j'ai rencontré un problème. Lorsque la valeur de « n » dépasse 50, il ouvre simplement un fichier et renomme les colonnes, quel que soit le nombre de fichiers sélectionnés. L'erreur que je reçois dans le journal est : Plage d'indice dans l'accès ou l'évaluation de 'y[n]' , y[/*###*/n].
Voici mon script actuel.
Names Default To Here( 1 );
Files = Pick File(
"Select File(s)",
"C:\Users\dkraeuter\Desktop\Temp\Azure",
{"All Files|*"},
1,
0,
"",
"multiple"
);
y = {"Blank", "Feed Step 2", "Cycle Stopped", "Spindle Speed 1", "Spindle Speed 2", "Number of Stones",
"Percent of Surface Interuptions", "Honing Time ", "Tool Type", "Fault Code", "Serial Number", "Feed Force 1",
"Feed Force 2", "Bore Compensation", "Feed Position at Bore", "Feed Position at End", "Feed Position at Target",
"Wedge Angle", "Part Count", "Setup Name", "Part Material", "Part Hardness", "Stone Type", "Stone Length",
"Stone Width", "Coolant Type", "Cycle Run Status", "Cycle Stone Condition", "Cycle Incoming Condition",
"Machine Model", "Stroke Speed 1", "Stroke Speed 2", "Feed Rate 1", "Feed Rate 2", "Stroke Length", "Bore Length",
"VSRR Calc", "Average Torq Spindle", "Average Torq Stroker", "Average Torque Feed", "Average Feed Force",
"Average Part Torque", "Target Final Diameter", "Surface Finish Ra", "Surface Finish Rz", "Surface Finish Rt",
"1", "2", "3"};
For( i = 1, i <= N Items( Files ), i++,
Try( dt = Open( Files[i], "text" ) );
Wait( 0 );
For( n = 1, n < 56, n++,
Column( dt, n ) << Set Name( y[n] )
);
);Re : Ouvrir plusieurs fichiers puis renommer les colonnes de toutes les tablesLes erreurs que j'ai trouvées étaient les suivantes
1. Le chemin d'accès au répertoire par défaut est introuvable.Je l'ai donc corrigé pour pointer vers un dossier que je savais avoir, puis le Pick File a bien fonctionné.
2. Il manquait un « ; » à la fin de l'instruction "y =".Une fois cela corrigé, le code a été analysé correctement.
3. La fonction Column() n'est pas comme la fonction :Name().Il n'y a pas de « : » au début.
4. Je me suis également débarrassé du "dt = current data table():".En le plaçant comme résultat de la fonction Open(), son paramétrage n'est plus nécessaire.
5. J'ai également ajouté dans la table de données une référence à la fonction Column().C'est la manière la plus formelle de spécifier la fonction Column(), et elle évite toute question sur la colonne vers laquelle elle pointe.
6. L'attente( 0 ); est juste une mesure de sécurité.Cela garantit que la table de données a été entièrement lue avant l'exécution de la boucle For().Vous souhaiterez peut-être également utiliser
dt << run formulas;
Cela garantira également que la table de données a été exécutée.
Voici ma version de votre code :
Names Default To Here( 1 );
Files = Pick File( "Select File(s)", "C:\Users\<YOUR logonid="">", {"All Files|*"}, 1, 0, "", "multiple" );
y = {"Test", "Run", "Model"};
For( i = 1, i <= N Items( Files ), i++,
Try( dt = Open( Files[i], "text" ) );
wait( 0 );
For( n = 1, n < 56, n++,
Column( dt, n ) << Set Name( y[n] )
);
);</YOUR>
Re : Ouvrir plusieurs fichiers puis renommer les colonnes de toutes les tablesMon erreur indique quelque chose à propos d'un ";" non reconnu. ou ")". Pour autant que je sache, cela a quelque chose à voir avec la commande open juste après la boucle For. Lorsque je commente la commande Open, la deuxième boucle for semble être correcte.
Le 55 provient du nombre réel de colonnes que je renomme. Lorsque j'ai republié, j'ai modifié le nombre total de noms de colonnes que j'avais répertoriés, mais j'ai oublié de modifier le nombre total de « n » autorisé.
Re : Ouvrir plusieurs fichiers puis renommer les colonnes de toutes les tablesQuel message d'erreur obtenez-vous dans le journal ?Je suppose qu'il indique que votre indice est hors de portée.Vous bouclez votre variable « n » de 1 à 55 et faites référence à votre variable « y ».Dès que « n » est égal à 4, vous n’avez plus de valeurs dans votre liste « y ».