Salut, je suis nouveau dans les scripts jmp. Essayer d'automatiser la colonne "Data" divisée (Input.jmp) chaque valeur de cellule en morceaux individuels de chaînes en utilisant l'espace comme délimiteur et chaque mandrin individuel de chaîne créera une nouvelle ligne avec la ligne A, B, C, D, E (Output_intermediate.jmp). Pour la sortie finale (Output_Final.jmp), vous devez diviser davantage la chaîne "Data_Coulmn_split_by_space_delimiter" en ses composants individuels en utilisant ":" comme délimiteur et une colonne supplémentaire (: Data1) avec la première lettre du 1er élément. J'ai utilisé l'ensemble de données intermédiaire pour expliquer comment la chaîne d'origine doit être divisée et traitée, pas nécessaire de suivre cet ordre tant que le résultat est équivalent à Output_Final.jmp. Merci de bien vouloir m'aider. Merci d'avance !
Attacher Output_Final.jmp
Voici un script qui créera la table de données que vous demandez, à une exception près.Je ne sais pas comment construire votre colonne E.

Names Default To Here( 1 );
dt = Data Table( "Input" );
dtOut = New Table( "Final Output",
New Column( "A" ),
New Column( "B", character ),
New Column( "C" ),
New Column( "D" ),
New Column( "Data_1", character ),
New Column( "Data_2", character ),
New Column( "Data_3", character ),
New Column( "Data_4", character ),
New Column( "Data_5", character ),
New Column( "Data_6", character ),
);
For( i = 1, i <= N Rows( dt ), i++,
If( i == 1,
theRow = 0;
theRow = N Rows( dtOut );
);
If( dt:Data_Column[i] != "X",
dtOut << Add Rows( 3 );
For( k = 1, k <= 3, k++,
theRow++;
dtOut:A[theRow] = dt:A[i];
dtOut:B[theRow] = dt:B[i];
dtOut:C[theRow] = dt:C[i];
dtOut:D[theRow] = dt:D[i];
dtOut:Data_1[theRow] = Substr( Word( k, dt:Data_Column[i], " " ), 1, 1 );
dtOut:Data_2[theRow] = Substr( Word( 1, Word( k, dt:Data_Column[i], " " ), ":" ), 2 );
dtOut:Data_3[theRow] = Word( 2, Word( k, dt:Data_Column[i], " " ), ":" );
dtOut:Data_4[theRow] = Word( 3, Word( k, dt:Data_Column[i], " " ), ":" );
dtOut:Data_5[theRow] = Word( 4, Word( k, dt:Data_Column[i], " " ), ":" );
dtOut:Data_6[theRow] = Word( 5, Word( k, dt:Data_Column[i], " " ), ":" );
);
);
);
PS Vous avez une faute de frappe dans le nom de la colonne de la table de données appelée Data_Column ....... elle est mal orthographiée Data_Coulmn