JSL_open et joint les tables de données d'une liste dans une boucle forBonjour, j'essaie d'écrire un script pour joindre des tables en JSL, où nous pouvons entrer le nombre de tables à joindre. Pour cela, j'ai créé des listes pour entrer l'emplacement de la table html, les noms des tables et les colonnes de jointure.
Avant la jointure, je commence par ouvrir les tables, en prenant un élément des listes dans une boucle for.
J'obtiens un message d'erreur "Problème d'indice dans l'accès ou l'évaluation de "tables_list[i]", tables_list[/*###*/].
Une idée de ce que j'ai fait de mal? Merci d'avance pour le soutien
// Indicate how many input data tables you have (default = 1)
nb_join_tables = 2;
// Indicate here the link to the first input HTML table
input_table_01 = "http://xxxx.html";
// Indicate here the names you want for your first JMP data tables
JMP_table_01_name = "xxx -01";
// Indicate here the link to the input HTML table to join
input_table_02 = "http://xxxx.html";
input_table_03 = "http://xxxx.html";
// Indicate here the names you want for the data tables to join
JMP_table_02_name = "xxx -02";
JMP_table_03_name = "xxx -03";<BR /><BR />// indicate here the column you want JMP to use as joiner for the tables merge (default:Parameter Set Name)<BR />joiner_table_01 = "Parameter Set Name";<BR />joiner_table_02 = "Parameter Set Name";<BR />joiner_table_03 = "Parameter Set Name";
// Create lists according to the number of tables to merge
tables_list = {input_table_01,input_table_02,input_table_03};
names_list= {JMP_table_01_name,JMP_table_02_name,JMP_table_03_name};
joiners_list = {joiner_table_01,joiner_table_02,joiner_table_03};
For( i = 0, i <= nb_join_tables, i++,
//Open html data table from specific location
dt=Open(
tables_list[i],
HTML Table( 4, Column Names( 0 ), Data Starts( 1 ) )
);
// Set JMP data table name to the desired one
dt << Set Name( names_list[i] );
);ScriptRe : JSL_open et joint les tables de données d'une liste dans une boucle forSuper, merci, ça marche !!
Re : JSL_open et joint les tables de données d'une liste dans une boucle force code
tables_list = {input_table_01,input_table_02,input_table_03};fait une liste de noms de variables, pas une liste du contenu des variables. Open voit le nom de la variable où il attend le contenu. Vous pouvez l'utiliser pour évaluer les noms par rapport à leur contenu :
tables_list = Eval List( {input_table_01,input_table_02,input_table_03} );ou vous pouvez construire la liste comme ceci :
tables_list = {};
tables_list[1] = input_table_01;
tables_list[2] = input_table_02;
tables_list[3] = input_table_03;Re : JSL_open et joint les tables de données d'une liste dans une boucle forVoici le journal :
je = 1 ;
tables_list = {input_table_01, input_table_02, input_table_03, input_table_04, input_table_05, input_table_06} ;
input_table_01
L'argument ouvert doit être une chaîne dans l'accès ou l'évaluation de 'Open' , Open/*###*/(tables_list[i], HTML Table( 4, Column Names( 0 ), Data Starts( 1 ) ))
Re : JSL_open et joint les tables de données d'une liste dans une boucle forajoutez une instruction de débogage juste avant l'endroit où elle échoue :
For( i = 0, i <= nb_join_tables, i++,
show(i, tables_list); // check the log window for the output
//Open html data table from specific location
dt=Open(
tables_list[i],
HTML Table( 4, Column Names( 0 ), Data Starts( 1 ) )
);
// Set JMP data table name to the desired one
dt << Set Name( names_list[i] );
);
Re : JSL_open et joint les tables de données d'une liste dans une boucle forBonjour Craige,
J'ai essayé aussi avec n = 1 et ça ne marche pas non plus. En fait, j'ai mis i=1 pour commencer et testé sur i=0 juste au cas où et j'ai oublié de remettre i=1 avant de poster.
Cela ne semble pas être le problème cependant.
Une autre idée ?
Re : JSL_open et joint les tables de données d'une liste dans une boucle forLes listes et matrices JSL commencent à 1. JMP utilise for( i = 1, i <= n, i++, ... plutôt que for( i = 0, i < n, i++, .