Re : Remplacer des caractères dans la chaîneLes cordes semblent suivre le même schéma. Utilisez peut-être la fonction words() avec un espace ou " comme séparateur. Utilisez ensuite concatitems() pour le remettre ensemble.

Re : Remplacer des caractères dans la chaîneRegex est une autre option
Regex(:Results, "(BIN = \!".+\!") (\d+)(\!".+)", "\1 " || Char(:Count) || "\3")
mais dans ce cas, j'utiliserais Words() + Concat Items() comme suggéré par Craige (si le modèle est toujours le même)
Re : Remplacer des caractères dans la chaîneMerci Craig et Jarmo
Re : Remplacer des caractères dans la chaîneJe pense que le problème vient de cette ligne
x[4] = Char( arra[binxx[j]] );
Je modifierais la boucle pour boucler sur les lignes au lieu de tableau associatif + lignes :
Names Default To Here(1);
dt = Current Data Table();
/// Get list of all the bins
binxx = Associative Array(:Bins[23 :: N Rows(dt)]) << Get Keys;
delcols = {"", " ", "}"};
/// Remove garbage values
For(i = 1, i <= N Items(delcols), i++,
Remove From(binxx, As List(Loc(binxx, delcols[i])));
);
///Get rows where Bins column contains BIN =
rows = dt << get rows where(Contains(:Bins, "BIN = "));
total = {};
//Loop to calculate the count of each bins
For(i = 1, i <= N Items(binxx), i++,
Insert Into(total, N Items(dt << get rows where(:Bins == binxx[i])))
);
//create array to store bin and counts
arra = Associative Array(binxx, total);
//loop to modify the character count in the table
For(i = 1, i <= N Items(rows), i++,
x = Words(:Bins[rows[i]]);
curbin = Substitute(x[3], "\!"", "");
If(Contains(arra, curbin),
x[4] = Char(arra[curbin]);
:Bins[rows[i]] = Concat Items(x);
,
continue();
);
);Re : Remplacer des caractères dans la chaîneMerci beaucoup Jarmo
Re : Remplacer des caractères dans la chaîne@jthi
J'ai utilisé la logique de Cragis pour mettre à jour le nombre dans la chaîne, mais cela ne remplace pas la chaîne de nombre correcte. Je ne suis pas sûr de ce que je fais de mal. Pouvez-vous jeter un oeil à mon code?
Attribue des comptes incorrects
Voici le code :
dt = Current Data Table();
/// Get list of all the bins
binxx = Associative Array( :Bins[23:: N Rows( dt )] ) << Get Keys;
delcols = {"", " ", "}"};
/// Remove garbage values
For( i = 1, i <= N Items( delcols ), i++,
Remove From( binxx, As List( Loc( binxx, delcols[i] ) ) );
);
///Get rows where Bins column contains BIN =
rows = dt << get rows where( Contains( :Bins, "BIN = " ) );
total = {};
//Loop to calculate the count of each bins
For( i = 1, i <= N Items( binxx ), i++,
Insert Into( total, N Items( dt << get rows where( :Bins == binxx[i] ) ) )
);
//create array to store bin and counts
arra = Associative Array( binxx, total );
//loop to modify the character count in the table
For( j = 1, j <= N Items( binxx ), j++,
For( i = 2, i <= N Items( rows ), i++,
If( Contains( arra, Substr( :Bins[i], 8, 1 ) ),
x = Words( :Bins[rows[i]] );
x[4] = Char( arra[binxx[j]] );
:Bins[rows[i]] = Concat Items( x );
)
)
);
Remplacer les caractères dans la chaîneSalut la communauté JMP,
J'essaie d'écrire un code jsl qui prendrait une colonne contenant une chaîne et, dans chaque ligne, remplacerait le nombre par les valeurs de la colonne de nombre. Les résultats finaux devraient ressembler à quelque chose comme dans la colonne Résultats
Aucune suggestion?
Automatisation et script