[R] Compter les occurences dans une liste

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
PALANDRE
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 19 juil. 2015 15:48
Status : Hors ligne

[R] Compter les occurences dans une liste

#1

Message par PALANDRE »

Salut !

Alors voilà mon problème, j'ai une ligne du genre :

RH002&RH002&RH005&

Je la mets en tableau comme cela :

Code : Tout sélectionner

Global $tableau_des_articles = StringRegExp($tableau_des_donnees_a_importer[1][5], '(.*?)&', 3)
 
$tableau_des_donnees_a_importer[1][5] contient la ligne.

Mon but serais que $tableau_des_articles[$i][0] corresponde au nom de l'objet, par exemple RH002, et $tableau_des_articles[$i][1] au nombre de fois où cet article apparait.

Ainsi pour cet exemple(RH002&RH002&RH005&), on aurait
$tableau_des_articles[0][0] = "RH002"
$tableau_des_articles[0][1] = 2
$tableau_des_articles[1][0] = "RH005"
$tableau_des_articles[1][1] = 1

Du coup il me faudrait une solution pour parcourir tous le tableau et qu'il en refasse un et s'il rencontre une nouvelle occurence, la supprimer et ajouter 1 à la quantité.

Merci d'avance les gars !
Modifié en dernier par PALANDRE le ven. 24 juil. 2015 16:44, modifié 1 fois.
Débutant sur AutoIT !

Je me base sur le principe d'une aide en ma faveur sur ce forum = une aide de ma part donnée.

Je dois donc : 2 aides.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Compter les occurences dans une liste

#2

Message par jguinch »

Il faut d'abord, avoir un tableau contenant la liste des éléments sans doublons.
Ensuite, pour chaque élément, compter le nombre d’occurrences présentes dans la chaîne (StringRegExp)
Ex :
► Afficher le texte
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Compter les occurences dans une liste

#3

Message par mikell »

_ArrayUnique sur le tableau résultat du regex
Puis création d'une array de taille x2 ou d'une array 2D (mieux adaptée dans ce cas)
Boucle dans le tableau1 pour compter les occurences de chaque élément dans la string de départ

Code : Tout sélectionner

$str = "RH002&RH002&RH005&"
StringReplace($str, "RH002", "RH002")
$occurences = @extended
Msgbox(0,"", $occurences)
Ensuite c'est de la simple construction d'array
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Compter les occurences dans une liste

#4

Message par jguinch »

@mikell : je ne suis pas parti sur StringReplace pour plus de sécurité au cas où la chaîne contiennent des trucs du genre RH002&DRH002&
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Compter les occurences dans une liste

#5

Message par mikell »

Ah oui, hum pas bien réveillé
Dans ce cas on peut utiliser un srer sur le même principe, en rajoutant \Q-\E tant qu'on y est, des fois qu'un objet s'appelle "canapé d'angle (bleu)" :mrgreen:
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
PALANDRE
Niveau 1
Niveau 1
Messages : 13
Enregistré le : dim. 19 juil. 2015 15:48
Status : Hors ligne

Re: [..] Compter les occurences dans une liste

#6

Message par PALANDRE »

Merci les gars ! Vous pesez dans le game !
Débutant sur AutoIT !

Je me base sur le principe d'une aide en ma faveur sur ce forum = une aide de ma part donnée.

Je dois donc : 2 aides.
Répondre