extraire une piqûre particulièreSalut,
Je veux extraire les valeurs bin des lignes et les stocker dans la liste.
Par exemple-
BIN = "B" 8 "Bad Bump" -> Je veux extraire la lettre "B" de la chaîne et la stocker dans la liste
BIN = "P" 6153 "PCM" -> Je veux extraire la lettre "P" de la chaîne et la stocker dans la liste et de même pour toutes les lignes contenant bin
Voici ce que j'ai essayé jusqu'à présent. Il extrait uniquement la ligne 13
Names Default To Here( 1 );
Clear Globals();
Clear Log();
dt = current data table();
asa = dt << Get Rows Where (Contains(as column(3), "BIN") & Contains(as column(3), "NULL") == 0);
binlist = {};
startrownumber= asa[1];
for(k =1, k<= Nitems(asa), k++,
Insertinto(binlist, db_test:Bins[asa])
);
binvaluelist= {};
for (i = startrownumber, i <= nitems(asa), i++,
newlist = dt:Bins[i];
word_list = words(newlist, "\!"\!"");
insertinto(binvaluelist, word_list);
);
ScriptRe : extraire une piqûre particulièreJe suggérerais de tester la regex sur JMP ou sur https://regex101.com/r/DPngn1/1 . Choisissez une chaîne défaillante, puis testez-la pour voir comment et pourquoi elle échoue. Dans ce cas, mon modèle regex nécessite une légère modification car il correspond parfois trop.
Re : extraire une piqûre particulière@jthi
J'ai essayé sur une autre plaquette et cela ne fonctionne pas pour certains bacs
BACS = 4
BIN = "A" 2 "Alignement_Die"
BIN = "C" 28615 "D1QM1804101"
BIN = "D" 23501 "D1QM1804102"
BIN = "F" 0 "Échec" ""
BIN = "N" 0 "Non testé"
BIN = "P" 2806 "Matrice PCM" ""
bacs = {"A", "C", "D", "F\!" 0 \!"Échec", "N", "P\!" 2806 \!"Matrice PCM"} ;
dt = current data table();
bins = {};
bin_rgx = "\[(?:BIN = \")(.*)(?:\" \d*)]\";
For Each Row(dt,
If(Starts With(:Bins, "BIN = "),
bin_str = Regex(:Bins, bin_rgx, "\1");
Insert Into(bins, bin_str);
);
);
show(bins); // bins = {"A", "C", "D", "F\!" 0 \!"Fail", "N", "P\!" 2806 \!"PCM die"};
Re : extraire une piqûre particulièreMerci Jarmo. Ça marche
Re : extraire une piqûre particulièreSi cela est lié à l'analyse de texte à partir de Importez les valeurs x et y du fichier texte dans la table jmp et créez une carte de plaquette J'utiliserais une approche différente. Mais supposons que nous commencions avec la table de données existante.
J'utiliserais très probablement Regex si le modèle reste toujours le même :
Names Default To Here(1);
dt = Open("$DOWNLOADS/Bin table.jmp");
bins = {};
bin_rgx = "\[(?:BIN = \")(.*)(?:\" \d*)]\";
For Each Row(dt,
If(Starts With(:Bins, "BIN = "),
bin_str = Regex(:Bins, bin_rgx, "\1");
Insert Into(bins, bin_str);
);
);
show(bins); // bins = {".", "1", "2", "B", "P", "N", "A", "3", "F"};