# Calcul différence MISE et GAIN (projet RECAP)



## symbol (16 Août 2018)

Bonjour a tous,

Dédié plus spécialement a (Ecatomb, Zeltron54, DaffyB)

 Dans la liste des fichiers texte contenant des données sotckées dans le dossier KENODATA, il y 'a "mygame.txt" qui est le fichier contenant la liste des jeux du tirage a venir, des membres.

 J'aimerais compter combien chaque joueur a misé.

- En sachant qu'une ligne = 1 € (par défaut)
- Dans le cas particulier, si le joueur indique "_X(2,3,4,5,6,7,8,9,10) a coté de son pseudo, cela indique qu'il mise 2,3,4,5,6,7,8,9,10 € pour cette grille.

------------------------------------------------------------------------------------------
exemple d'un membre qui mise 5€ :  @bob_X5 22-45-32-47
------------------------------------------------------------------------------------------

Le but de cela, est de faire une balance du gain/mise.

- Est-il possible de compter pour chaque membre le total de sa mise, puis sauvegarder ca dans un fichier ?

@ecatomb, tu as produit du code pour compter les gains de chaque membre, ca ne devrait pas être si différent (sauf qu'ici pas de chiffre a additionner mais des lignes. (sauf si "_X")

Voici l'exemple de mise pour ce soir :


```
@magnetico 11-13-14-15-36-50
@magnetico 11-12-13-14-15-52
@magnetico 11-13-14-15-35-54
@magnetico 11-13-14-15-48-56
@magnetico 11-13-14-15-23-58
@microseb 08 12 20 21 29 36 37 57 67
@microseb 08 12 20 28 34 36 37 42 57
@microseb 05 08 12 20 36 37 57 61 69
@microseb 08 12 20 36 37 42 53 57 65
@microseb 08 12 15 20 36 37 42 50 57
@microseb 02 06 08 12 16 20 36 37 57
@microseb 08 12 20 36 37 48 52 57
@microseb 08 12 20 36 37 51 57 64 69
@alex 09 38 40 50 59 69 70
@alex 09 20 38 40 50 59 69
@alex 09 19 20 38 50 59 70
@alex 19 20 38 40 50 59 69
@alex 09 10 19 38 59 69 70
@elsie 27 28 29 38 47 49
@elsie 27 29 37 38 47 49
@elsie 27 29 38 39 47 49
@elsie 27 29 38 47 48 49
@elsie 27 29 47 49 28 37 38
@elsie 27 29 47 49 38 39 38
@elsie 27 29 47 49 28 48 38
@elsie 27 29 47 49 37 39 38
@elsie 27 29 47 49 37 48 38
@elsie 27 29 47 49 39 48 38
```


Un autre fichier RESULTATSTATS.txt quand a lui contient les gains cumulés des membres.

```
MICROSEB > 21 € 
ALEX > 4 €
```

Normalement, Mise - gain = balance des comptes

Si quelqu'un entrevois une solution (si c'est techniquement possible).

Merci


----------



## Membre supprimé 1129907 (16 Août 2018)

Dans ton exemple de "mygame.txt" les numéros de magnetico sont séparés par des tirets mais pas les numéros des autres ?
Est-ce normal ?

Perso, je préfère avoir un fichier de base au format csv pour travailler.
Exemple :

```
joueur;mise;numéro 1;numéro 2;numéro 3;numéro 4;numéro 5;numéro 6
@magnetico;1;11;13;14;15;36;50
@magnetico;1;11;12;13;14;15;52
@magnetico;1;11;13;14;15;35;54
@magnetico;1;11;13;14;15;48;56
@magnetico;1;11;13;14;15;23;58
@microseb;1;08;12;20;21;29;36;37;57;67
@microseb;1;08;12;20;28;34;36;37;42;57
@microseb;1;05;08;12;20;36;37;57;61;69
@microseb;1;08;12;20;36;37;42;53;57;65
@microseb;1;08;12;15;20;36;37;42;50;57
@microseb;1;02;06;08;12;16;20;36;37;57
@microseb;1;08;12;20;36;37;48;52;57
@microseb;1;08;12;20;36;37;51;57;64;69
@alex;1;09;38;40;50;59;69;70
@alex;1;09;20;38;40;50;59;69
@alex;1;09;19;20;38;50;59;70
@alex;1;19;20;38;40;50;59;69
@alex;1;09;10;19;38;59;69;70
@elsie;1;27;28;29;38;47;49
@elsie;1;27;29;37;38;47;49
@elsie;1;27;29;38;39;47;49
@elsie;1;27;29;38;47;48;49
@elsie;1;27;29;47;49;28;37;38
@elsie;1;27;29;47;49;38;39;38
@elsie;1;27;29;47;49;28;48;38
@symbol;67;11;12;13;14;15;16
@elsie;1;27;29;47;49;37;39;38
@elsie;1;27;29;47;49;37;48;38
@elsie;1;27;29;47;49;39;48;38
```
1ère colonne le nom, puis la mise (1€ ou plus), ensuite les numéros.
J'ai rajouté à ton exemple un joueur qui est certain de gagner vu qu'il mise 67€ 

A partir d'un fichier de ce type, ce sera très simple de calculer la mise. Même si cela ne prendra pas trop de temps en plus avec la version actuelle.
En tout cas, j'ai remarqué que le nombre de numéro varie d'une ligne à l'autre ...

ps: il faudrait un jour que tu fasses un récapitulatif de tes différents sujets sur ton jeu


----------



## symbol (16 Août 2018)

Concernant le format des numéros postés dans le forum , il y a 2 facons : soit avec un "-" ou "vide", mais jamais autres chose.
Le nombre de numéro qui compose une "grille" varie, il va de 2 a 10 (jamais moins ou plus)

Juste pour info :
Il y a 70 N°, 20 N° parmi les 70 sont tirés au sort.

Si vous jouez une grille de 6 N° et que ces 6 sont tirés au sort (parmi les 20), vous remportez 1000€ pour une mise de 1€

RAPPORT pour 1€
--------------------------
N° trouvés --> Gain
2/2 --> 2€
3/3 --> 6€
4/4 --> 50€
5/5 --> 100€
6/6--> 1000€
7/7--> 3000€
8/8--> 10 000€
9/9--> 40 000€cash ou 2000€/an A VIE
10/10--> 200 000€ cash ou 10 000€/an A VIE
(pour 1 grille de 10 N° avec mise 10 € --> 2 000 000 € CASH ou 100 000€/an A VIE)

Le plus gros gain possible est 20 000 000 € (10/10 mise 10 € avec multiplicateur X10)
Il y a une option au keno, c'est le multiplicateur (tiré au hasard parmi X1, X2, X3, X4, X5, X10)

Il y a aussi des gains intermediaires.


----------



## Membre supprimé 1129907 (16 Août 2018)

As-tu toujours un espace après la mise du joueur si elle est indiquée dans ton fichier ?


----------



## symbol (16 Août 2018)

Si je comprends bien la question, la réponse est oui, il y a toujours une espace entre @pseudoESPACEN°-N°-N°-N°
Pour les mises autres que 1€, c'est @pseudo_X5ESPACEN°-N°-N°-N°


----------



## Membre supprimé 1129907 (16 Août 2018)

```
while IFS= read -r ligne

do
  joueur_gain=$(echo ${ligne} | sed "s/ [- 0-9]*$/;1/" | sed "s/_X\([0-9][0-9]*\);1$/;\1/" )
  echo ${joueur_gain}
done < "mygame.txt" | awk -F';' '
  {
    tableau[$1]=tableau[$1]+$2
  }
  END {
    for ( joueur in tableau ) {
      printf "%s;%s\n",joueur,tableau[joueur]
    }
  }' | sort > "mise.txt"
```

Résultat avec ton fichier de test :

```
@alex;5
@elsie;10
@magnetico;5
@microseb;8
```

La partie du while crée un fichier csv de ce type à partir de ton txt (le 1 sera remplacé par le nombre correspondant s'il y a un "_X" :

```
@magnetico;1
@magnetico;1
@magnetico;1
@magnetico;1
@magnetico;1
@microseb;1
@microseb;1
@microseb;1
@microseb;1
@microseb;1
@microseb;1
@microseb;1
@microseb;1
@alex;1
@alex;1
@alex;1
@alex;1
@alex;1
@elsie;1
@elsie;1
@elsie;1
@elsie;1
@elsie;1
@elsie;1
@elsie;1
@elsie;1
@elsie;1
@elsie;1
```

Le awk s'occupe de calculer la some des mises à partir de ce csv
Le sort c'est juste pour avoir les noms dans l'ordre.

A noter que si tu as un nom se finissant par un espace suivi d'un (ou plusieurs) chiffre, ça ne fonctionnera pas bien. C'est impossible à gérer avec ton type de fichier source.

Il te reste à rediriger cela vers ton fichier final contenant les mises


----------



## symbol (17 Août 2018)

Merci Ecatomb,

Je vais bien regarder le code pour en saisir toutes les subitilités.
Concernant les pseudos qui se présenteraient sous la forme PSEUDO(escape)chiffre, ce n'est pas permis dans le forum.


----------



## symbol (17 Août 2018)

Je viens de tester, c'est foormiiiidable 


Actuellement le contenu du fichier mise.txt vidé a chaque lancement.

Pour avoir le total des mises sur le long terme, est-il possible d'additionner les mises (pour chaque joueur) ?

Le but final étant d'ajouter les mises, déduire les gains (ou ajouter les gains et déduire la mise, ce qui revient au même) pour savoir combien chaque joueur a gagné ou perdu (en €).


----------



## Membre supprimé 1129907 (17 Août 2018)

Il te suffit de concaténer les "mygame.txt" à chaque participation :

```
cat "mygame.txt" >> "mygame_full.txt"
```

Ensuite tu passes la commande avec ce fichier. Ne pas oublier de le supprimer pour repartir de zéro


----------



## symbol (18 Août 2018)

Merci Ecatomb,

Je vais tester cet aprem 

MAJ :
Je viens de tester ca fonctionne très bien.
1) A chaque lancement les nouveaux pronos sont ajoutés a la suite dans le fichier "mygames_full.txt" (peut être va t-il falloir mettre une limite au nombre de pronos sauvegarder dans ce fichier).
La contenance du fichier peut-elle est limitée a 5000 pronos stockés (soit 5 pronos pour 10 personne pendant 100 tirages ? (de memoire c'est head ou tail la commande..)

2) le script s'occupe d'additionner les mises de chacun, et sauvegarder le résultat des additions.

Voici le code adapté :

```
cat "/Users/xxx/Desktop/KENODATA/mygames.txt" >> "/Users/xxx/Desktop/KENODATA/mygames_full.txt"

while IFS= read -r ligne

do
  joueur_gain=$(echo ${ligne} | sed "s/ [- 0-9]*$/;1/" | sed "s/_X\([0-9][0-9]*\);1$/;\1/" )
  echo ${joueur_gain}
done < "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | awk -F';' '
  {
    tableau[$1]=tableau[$1]+$2
  }
  END {
    for ( joueur in tableau ) {
      printf "%s;%s\n",joueur,tableau[joueur]
    }
  }' | sort > "/Users/xxx/Desktop/KENODATA/MISE.txt"

sleep 40
```


----------



## symbol (18 Août 2018)

Un petit truc qui me tracasse.

L'ajout des nouvelles données dans mygame_full.text se fait a la suite du texte deja existant (c'est a dire en bas).
Alors comment ne conserver que les 5000 derniers pronos ?
Si c'etait ajouté en haut du texte, ca serait facile de limiter a 5000 lignes (on compte du haut vers le bas, les plus anciennes étant naturellement supprimées avec "tail -5000"), mais vu que c'est ajouté en bas, comment faire ? :-/
Je me demande si y'a pas besoin de SED :-/


----------



## Membre supprimé 1129907 (18 Août 2018)

Dans ce cas, le plus simple est de faire quelque chose comme ceci :

```
cat "/Users/xxx/Desktop/KENODATA/mygames.txt" "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 > "/Users/xxx/Desktop/KENODATA/mygames_full.txt"
```

Les nouvelles lignes seront au début, et on n'en garde que 5000 max.


----------



## symbol (18 Août 2018)

Avant ta réponse, Je m'etais permis de ca


```
cat "/Users/xxx/Desktop/KENODATA/mygames.txt" >> "/Users/xxx/Desktop/KENODATA/mygames_full.txt"

cat "/Users/xxx/Desktop/KENODATA/mygames_full.txt" >> "/Users/xxx/Desktop/KENODATA/mygames_fulltemp.txt"
head -5000 /Users/xxx/Desktop/KENODATA/mygames_fulltemp.txt > /Users/xxx/Desktop/KENODATA/mygames_full.txt
rm -f /Users/xxx/Desktop/KENODATA/mygames_fulltemp.txt
```


----------



## symbol (18 Août 2018)

Au debut, je pensais, que tu additionnerais le nombre de pronos (par membre) contenu dans mygames.txt, sauvegardais uniquement les resultats des additions dans MISE.txt (sous la forme pseudo;XX, puis recommencais au prochain pronos postés. ca éviterais d'avoir un fichier intermédiaire "mygame_full.txt"

donc, si j'ai bien saisi, tu ajoutes a la suite les pronos de mygames.txt dans mygames_full.txt (jusqu'a limite de 5000 lignes), puis additionne le total des mises (par membre) de mygames_full.txt, et sauvegarde le resultats des additions dans MISE.txt


----------



## Membre supprimé 1129907 (18 Août 2018)

Le résultat sous la forme pseudo;XX est renvoyé directement à la commande awk. Je ne le stocke nul part, mais on pourrait si cela t'arrange 

La partie suivante affiche le contenu du nouveau fichier mygames.txt puis le contenu du mygames_full.txt

```
cat "/Users/xxx/Desktop/KENODATA/mygames.txt" "/Users/xxx/Desktop/KENODATA/mygames_full.txt"
```
Le head permet de ne conserver que les 5000 premières lignes.

C'est assez proche de ta version 

Je pense que tu dois avoir en main de quoi avancer sur ton sujet même si les fichiers sur lesquels je fais les opérations ne sont pas forcément les bons.
Je préfère attendre la suite parce que j'ai un peu de mal à suivre ce que tu fais


----------



## symbol (18 Août 2018)

Ah !, ca vous semble compliqué ou mal défini.
Comme d'hab, j'ajoute, j'empile, je mélange ... Une sorte de brouet macédonien


----------



## symbol (18 Août 2018)

Y'a un souci avec cette version :

```
cat "/Users/xxx/Desktop/KENODATA/mygames.txt" "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 > "/Users/xxx/Desktop/KENODATA/mygames_full.txt"

while IFS= read -r ligne

do
  joueur_gain=$(echo ${ligne} | sed "s/ [- 0-9]*$/;1/" | sed "s/_X\([0-9][0-9]*\);1$/;\1/" )
  echo ${joueur_gain}
done < "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | awk -F';' '
  {
    tableau[$1]=tableau[$1]+$2
  }
  END {
    for ( joueur in tableau ) {
      printf "%s;%s\n",joueur,tableau[joueur]
    }
  }' | sort > "/Users/xxx/Desktop/KENODATA/MISE.txt"

sleep 40
```

Si je lance le script 2 fois (ou plus) les pronos dans " mygames.txt"ne sont plus ajoutés dans "mygames_full.txt", le total des mises dans MISE.txt restent identiques.

pire, si je lance la commande :

```
cat "/Users/xxx/Desktop/KENODATA/mygames.txt" "/Users/xxx/Desktop/KENODATA/mygames_full.txt" > "/Users/xxx/Desktop/KENODATA/mygames_full.txt"
```
je me retrouve avec un fichier de 895 megas (mygames_full.txt)


----------



## symbol (18 Août 2018)

Il me semble que la bonne syntaxe est


```
cat "/Users/xxx/Desktop/KENODATA/mygames.txt" >> "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 >> "/Users/xxx/Desktop/KENODATA/mygames_full.txt"
```

au lieu de

```
cat "/Users/xxx/Desktop/KENODATA/mygames.txt" "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 > "/Users/xxx/Desktop/KENODATA/mygames_full.txt"
```


----------



## symbol (18 Août 2018)

Je souhaite supprimer "@" et remplacer ";" par " : " dans le fichier MISE.txt. (exemple. "@magnetico;2" devient  "magnetico : 2" )

Voici ce que j'ai mis, mais je suis certain qu'on peut faire mieux en plus court. :-/


```
sed -e 's/@//' /Users/xxx/Desktop/KENODATA/MISE.txt > /Users/xxx/Desktop/KENODATA/MISECLEAN1.txt
sed 's/;/ : /' /Users/xxx/Desktop/KENODATA/MISECLEAN1.txt > /Users/xxx/Desktop/KENODATA/MISECLEAN2.txt
```


----------



## symbol (19 Août 2018)

@ecatomb 

Finalement, ma requête concernant supprimer "@" et remplacer ";" par " : " est inutile.


Donc, maintenant, on a 2 fichiers :
• *MIDI.txt* qui contient le total des mises (pour chaque membre)
_dans ce format:_
@Alex;2
@Elsie;2
@magnetico;85
@microseb;2



• *RESULTATSTATS.txt* qui contient le total des gains (pour chaque membre)
_dans ce format:_
MICROSEB > 61 €  
ELSIE > 14 €  
ALEX > 6 € 

Question :
Pour faire la soustraction mise - gain , est-il necessaire de convertir le format de *RESULTATS.txt* afin d'avoir le même que *MIDI.txt ?
*


----------



## Membre supprimé 1129907 (19 Août 2018)

symbol a dit:


> Y'a un souci avec cette version :
> 
> ```
> cat "/Users/xxx/Desktop/KENODATA/mygames.txt" "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 > "/Users/xxx/Desktop/KENODATA/mygames_full.txt"
> ...






symbol a dit:


> Il me semble que la bonne syntaxe est
> 
> 
> ```
> ...



C'est vrai que ça bug lorsqu'on essaie d'écrire dans un fichier utilisé en entrée (même s'il y a un redirection entre temps).
La version suivante fonctionnera mieux :

```
cat "/Users/xxx/Desktop/KENODATA/mygames.txt" "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 > "/Users/xxx/Desktop/KENODATA/mygames_full.tmp" && mv "/Users/xxx/Desktop/KENODATA/mygames_full.tmp" "/Users/xxx/Desktop/KENODATA/mygames_full.txt"
```



symbol a dit:


> @ecatomb
> 
> Finalement, ma requête concernant supprimer "@" et remplacer ";" par " : " est inutile.
> 
> ...



Ce n'est pas obligé si cela t'arrange. Il faudra juste créer un script utilisant tes deux fichiers et calculant la différence:

Pour enlever le @ en début de ligne : echo "@magnetico" | sed 's/^@//'

Pour transformer du texte en majuscule ou minuscule : la commande tr permet de faire ça
Je te laisse tester :

```
echo symbol | tr [a-z] [A-Z]
echo SYMBOL | tr [A-Z] [a-z]
```

Il te reste à trouver comment calculer la différence mais tu devrais pouvoir te passer des deux idées précédentes que j'ai eu 
Un truc de ce style devrait être un bon début :

```
var_mise=0
var_resultat=0

var_mise=$(grep -i "MICROSEB" MIDI.txt | cut -f 2 -d';')
var_resultat=$(grep -i "MICROSEB" RESULTATSTATS.txt | cut -f 3 -d' ')

echo $((var_mise - var_resultat))
```


----------



## symbol (19 Août 2018)

Merci.

Je vais surtout m'interesser a


```
var_mise=0
var_resultat=0

var_mise=$(grep -i "MICROSEB" MIDI.txt | cut -f 2 -d';')
var_resultat=$(grep -i "MICROSEB" RESULTATSTATS.txt | cut -f 3 -d' ')

echo $((var_mise - var_resultat))
```

Il ne reste plus qu'a faire la soustraction (pour chaque pseudo) et hooooop, c'est terminé.


----------



## Membre supprimé 1129907 (19 Août 2018)

La soustraction est déjà là, c'est le echo de la fin 
Il te reste à récupérer tous les participants dans une liste et de l'utiliser pour faire le grep. Pourquoi pas reprendre le cut de ma partie pour le faire 

Par contre, c'est pas optimisé vu qu'on va parcourir plein de fois les fichiers...


----------



## symbol (19 Août 2018)

J'ai inclus les dernieres lignes de code au code existant.


```
cat "/Users/xxx/Desktop/KENODATA/mygames.txt" >> "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 >> "/Users/xxx/Desktop/KENODATA/mygames_full.txt"
#cat "/Users/xxx/Desktop/KENODATA/mygames.txt" "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 > "/Users/xxx/Desktop/KENODATA/mygames_full.tmp" && mv "/Users/xxx/Desktop/KENODATA/mygames_full.tmp" "/Users/xxx/Desktop/KENODATA/mygames_full.txt"

while IFS= read -r ligne

do
  joueur_gain=$(echo ${ligne} | sed "s/ [- 0-9]*$/;1/" | sed "s/_X\([0-9][0-9]*\);1$/;\1/" )
  echo ${joueur_gain}
done < "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | awk -F';' '
  {
    tableau[$1]=tableau[$1]+$2
  }
  END {
    for ( joueur in tableau ) {
      printf "%s;%s\n",joueur,tableau[joueur]
    }
  }' | sort > "/Users/xxx/Desktop/KENODATA/MISE.txt"
 
 
 
# sed -e 's/@//' /Users/xxx/Desktop/KENODATA/MISE.txt > /Users/xxx/Desktop/KENODATA/MISECLEAN1.txt
# sed 's/;/ : /' /Users/xxx/Desktop/KENODATA/MISECLEAN1.txt > /Users/xxx/Desktop/KENODATA/MISECLEAN2.txt

## Soustraction de  MISE - GAIN
var_mise=0
var_resultat=0

var_mise=$(grep -i "MICROSEB" /Users/xxx/Desktop/KENODATA/MISE.txt | cut -f 2 -d';')
var_resultat=$(grep -i "MICROSEB" /Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt | cut -f 3 -d' ')

echo $((var_mise - var_resultat))

sleep 10
```


J'ai vu que le calcul s'effectue pour MICROSEB (j'ai pas vérifié si c'est exact ou pas (on verra en reel).


----------



## symbol (19 Août 2018)

"Il te reste à récupérer tous les participants dans une liste"

Ce qui m'echappe (surement car je ne connais pas la commande dédiée) c'est :
• Comment faire correspondre la mise qui se trouve dans MISE.txt et le gain (RESULTATSTATS.txt) au meme pseudo.
J'entends par la, comment faire que le gain de magnetico ne soit pas deduit la mise de microseb ou tout autre membre  ?????  
Bref, comment attribuer au bon membre les mises et gains qui lui appartiennent


----------



## Membre supprimé 1129907 (19 Août 2018)

Avec une liste fait manuellement 

Ou alors, tu la crée à partir d'un de tes fichiers :

```
liste_participant=$(cut -f 1 -d';' MIDI.txt | sed 's/^@//')

for participant in $liste_participant
do

var_mise=0
var_resultat=0

var_mise=$(grep -i "$participant" /Users/xxx/Desktop/KENODATA/MISE.txt | cut -f 2 -d';')
var_resultat=$(grep -i "$participant" /Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt | cut -f 3 -d' ')

echo $((var_mise - var_resultat))

done
```

Cela me donne ça (test avec ton exemple de fichier "MIDI.txt" et "RESULTATSTATS.txt" )

```
Alex => -4
Elsie => -12
magnetico => 85
microseb => -59
```

Perso, ça ne me plait pas trop comme solution car la structure des fichiers n'est pas adéquat pour ton projet mais ça semble bien marcher 

ps: quelques fois il m'arrive de reprendre mes scripts automatisant ce genre d'action à partir de 0. Au final, cela me permet d'avoir quelque chose de plus simple, robuste et plus rapide.
C'est ce qui m'a permis de faire un curl plus poussé (quasi celui que je t'ai donné). Je me sers de ça pour formater diverses données au format que je veux. Je m'en sert aussi pour récupérer en auto des journaux gratuits (plutôt que de passer 5min via leur site) 


[Edit] Un gros truc à ne pas oublier, entre le fichier qui stocke les données et l'affichage, il peut y avoir des différences. Il faut donc en profiter et mettre des informations supplémentaire ou un format plus utile (d'où les fichiers csv simples à utiliser : tu caches les parties à ne pas afficher)


----------



## symbol (19 Août 2018)

"liste_participant=$(cut -f 1 -d';' MIDI.txt | sed 's/^@//')"

MIDI.txt ?   tu veux dire MISE.txt


----------



## Membre supprimé 1129907 (19 Août 2018)

symbol a dit:


> @ecatomb
> 
> Finalement, ma requête concernant supprimer "@" et remplacer ";" par " : " est inutile.
> 
> ...



Tu avais mis MIDI.txt ici


----------



## symbol (19 Août 2018)

ahhhhh oui, c'est bien moi qui écris n'importe quoi


----------



## symbol (19 Août 2018)

Je de tester


```
cat "/Users/xxx/Desktop/KENODATA/mygames.txt" >> "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 >> "/Users/xxx/Desktop/KENODATA/mygames_full.txt"
#cat "/Users/xxx/Desktop/KENODATA/mygames.txt" "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 > "/Users/xxx/Desktop/KENODATA/mygames_full.tmp" && mv "/Users/xxx/Desktop/KENODATA/mygames_full.tmp" "/Users/xxx/Desktop/KENODATA/mygames_full.txt"

while IFS= read -r ligne

do
  joueur_gain=$(echo ${ligne} | sed "s/ [- 0-9]*$/;1/" | sed "s/_X\([0-9][0-9]*\);1$/;\1/" )
  echo ${joueur_gain}
done < "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | awk -F';' '
  {
    tableau[$1]=tableau[$1]+$2
  }
  END {
    for ( joueur in tableau ) {
      printf "%s;%s\n",joueur,tableau[joueur]
    }
  }' | sort > "/Users/xxx/Desktop/KENODATA/MISE.txt"


# sed -e 's/@//' /Users/xxx/Desktop/KENODATA/MISE.txt > /Users/xxx/Desktop/KENODATA/MISECLEAN1.txt
# sed 's/;/ : /' /Users/xxx/Desktop/KENODATA/MISECLEAN1.txt > /Users/xxx/Desktop/KENODATA/MISECLEAN2.txt

## Soustraction de  MISE - GAIN
liste_participant=$(cut -f 1 -d';' /Users/xxx/Desktop/KENODATA/MISE.txt | sed 's/^@//')

for participant in $liste_participant
do

var_mise=0
var_resultat=0

var_mise=$(grep -i "$participant" /Users/xxx/Desktop/KENODATA/MISE.txt | cut -f 2 -d';')
var_resultat=$(grep -i "$participant" /Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt | cut -f 3 -d' ')

echo $((var_mise - var_resultat))

done

sleep 10
```

Ca donne






Je ne vois pas le pseudo du membre en face du decompte :-/
Ca devrait ressembler a 
PSEUDO DECOMPTE

par exemple 
magnetico 10
elsie -23
microseb 67
etc...


----------



## Membre supprimé 1129907 (19 Août 2018)

Oups, mauvais copier-coller de ma part ...
Cette version est celle que j'ai testé :

```
echo $participant '=>' $((var_mise - var_resultat))
```


----------



## symbol (19 Août 2018)

En attendant, j'avais essayé

```
echo $((liste_participant var_mise - var_resultat))
```
  , evident, ca marchait pas

merci

Niveau affichage, c'est nickel





Reste a voir en reel si tout ca correspond bien a la réalité des mises/gains.


----------



## Membre supprimé 1129907 (19 Août 2018)

La double parenthèse permet d'effectuer des calculs simples si précédée par un $


----------



## symbol (19 Août 2018)

Un petit detail concernant la sortie vers fichier texte

Je fais

```
echo $participant '=>' $((var_mise - var_resultat)) > /Users/xxx/Desktop/KENODATA/MISEGAIN.txt
```

ca me donne le fichier MISEGAIN.txt comme convenu, mais je ne retrouve que le dernier peseudo traité.





Et si je fais

```
[code]echo $participant '=>' $((var_mise - var_resultat)) >> /Users/xxx/Desktop/KENODATA/MISEGAIN.txt
```
maintenant ca cumul sans fin





La meilleure solution est-elle de couper le texte juste après le dernier pseudo traité ?

Faut vraiment que je vois ca en reel, car (je n'en suis pas sur) mais y'a une subtilité dans le calcul mise-gain...
Si je mise 5 €, et que j'ai aucun gain, ma balance devrait etre  -5 € (puisque je perds 5€)
Si au prochain tirage je mise 5 €, et que je gagne 10 €, ma balance devrait etre de 5 € (-5€ perte + - 5€ de mise + 10 € de gain = +5 €


----------



## Membre supprimé 1129907 (19 Août 2018)

Un seul ">" signifie que tu rediriges la sortie en écrasant ce qu'il y avait dans le fichier.
Deux ">>" signifie que tu rediriges la sortie en ajoutant à la fin du fichier.

Soit tu supprimes le "MISEGAIN.txt" et tu utilise ta version avec les deux ">>"
Soit tu mets ton "> /Users/xxx/Desktop/KENODATA/MISEGAIN.txt" derrière le "done" pour écrire le résultat de la boucle for et non une ligne en particulier 


```
done > /Users/xxx/Desktop/KENODATA/MISEGAIN.txt
```


----------



## symbol (20 Août 2018)

```
done > /Users/xxx/Desktop/KENODATA/MISEGAIN.txt
```

Ah oui c'est vrai. J'ai du mal quand même :-/

Merci


----------



## symbol (20 Août 2018)

@ecatomb

je viens de tester en reel, concernant le calcul mise - gain.

C'est bien ce qui me semblait, y'a une petite erreur.

Le resultat qui se trouve dans le fichier MISEGAIN.txt
alex => 5 €
elsie => 9 €
magnetico => 5 €
microseb => 8 €

En realité les chiffres du dessus, affichent les mises. Etant donné que seule Elsie a fait 2 € de gain, ca devrait être

alex => -3 € (il a misé 5 € et retouche seulement 2 €)
elsie => -9 €
magnetico => -5 €
microseb => -8 €

Est ce que vois d'ou vient le pb ?

Pour memoire je te met le code qui calcul mise - gain

```
############################################################################################
##############  MISEGAIN (calcul MISE - GAIN pour avoir la balance  )##############
############################################################################################
# Ajout des grilles jouées par les membres afin d'additionner les mises totales de chacun. le nombre de lignes est limité a 5000.
cat "/Users/xxx/Desktop/KENODATA/mygames.txt" >> "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 >> "/Users/xxx/Desktop/KENODATA/mygames_full.txt"
#cat "/Users/xxx/Desktop/KENODATA/mygames.txt" "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 > "/Users/xxx/Desktop/KENODATA/mygames_full.tmp" && mv "/Users/xxx/Desktop/KENODATA/mygames_full.tmp" "/Users/xxx/Desktop/KENODATA/mygames_full.txt"

while IFS= read -r ligne

do
  joueur_gain=$(echo ${ligne} | sed "s/ [- 0-9]*$/;1/" | sed "s/_X\([0-9][0-9]*\);1$/;\1/" )
  echo ${joueur_gain}
done < "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | awk -F';' '
  {
    tableau[$1]=tableau[$1]+$2
  }
  END {
    for ( joueur in tableau ) {
      printf "%s;%s\n",joueur,tableau[joueur]
    }
  }' | sort > "/Users/xxx/Desktop/KENODATA/MISE.txt"


# sed -e 's/@//' /Users/xxx/Desktop/KENODATA/MISE.txt > /Users/xxx/Desktop/KENODATA/MISECLEAN1.txt
# sed 's/;/ : /' /Users/xxx/Desktop/KENODATA/MISECLEAN1.txt > /Users/xxx/Desktop/KENODATA/MISECLEAN2.txt

## Soustraction de  MISE - GAIN
liste_participant=$(cut -f 1 -d';' /Users/xxx/Desktop/KENODATA/MISE.txt | sed 's/^@//')

for participant in $liste_participant
do

var_mise=0
var_resultat=0

var_mise=$(grep -i "$participant" /Users/xxx/Desktop/KENODATA/MISE.txt | cut -f 2 -d';')
var_resultat=$(grep -i "$participant" /Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt | cut -f 3 -d' ')

echo $participant '=>' $((var_mise - var_resultat)) '€'

done > /Users/xxx/Desktop/KENODATA/MISEGAIN.txt

### -------------------------------------------------------------------------------------------------------------------------------------------------
```


----------



## symbol (20 Août 2018)

Etant donné qu'on ne peut pas modifier un texte posté après quelques minutes, je suis obligé de reposter comme suit :

Deux erreurs dans mon post précédent :

a la phrase "Etant donné que seule Elsie a fait 2 € de gain, ca devrait être" , c'est "alex" et pas "elsie"

voici le bon texte
Le resultat qui se trouve dans le fichier MISEGAIN.txt
alex => -5 €
elsie => -9 €
magnetico => -5 €
microseb => -8 €


Je reformule donc le probleme :
En realité les chiffres du dessus, affichent les mises. Etant donné que seule Alex a fait 2 € de gain, ca devrait être

alex => -3 € (il a misé 5 € et retouche seulement 2 €)
elsie => -9 €
magnetico => -5 €
microseb => -8 €


----------



## Membre supprimé 1129907 (20 Août 2018)

Je n'ai rien compris...



symbol a dit:


> Normalement, Mise - gain = balance des comptes





symbol a dit:


> je viens de tester en reel, concernant le calcul mise - gain



C'est bien ce qui est calculé 

Peux-tu donner un exemple de fichier MISE.txt, RESULTATSTATS.txt et ce que tu veux obtenir ?

Dans tes derniers postes, tu donnes un résultat sans rapport avec les données que tu as donné plus tôt ...  C'est comme demander de l'aide pour cuisiner un plat en disant qu'il me manque quelques chose mais sans dire ce que tu as déjà fait et ce que tu cherches à avoir


----------



## symbol (20 Août 2018)

Reprenons... C'est simple 

Un joueur mise 5 €, il valide son ticket et paie (l'argent est désormais parti a la FDJ) , au tirage ses jeux lui rapportent 2 €, il se fait rembourser les tickets gagnants, il a maintenant 2 € dans sa poche, sa balance est donc - 3€ (que l'on affiche - 3€ (-5€ de mise + 2 € de gain = - 3 €)

autre exemple

Un joueur mise 10 €, il valide son ticket et paie (l'argent est désormais parti a la FDJ) , au tirage ses jeux lui rapportent 25 €, il se fait rembourser les tickets gagnants, il a maintenant 25 € dans sa poche, sa balance est donc de + 15€ (que l'on affiche + 15€ (-10€ de mise + 25 € de gain = +15 €)

La mise c'est toujours le joueur qui la paie, elle donc a déduire dans tous les cas

la règle c'est : on retire la mise, on ajoute le gain (si y'en a)
ou ce qui revient au même on ajoute le gain et retire la mise.

Ici l'intégralité du dossier KENODATA
https://workupload.com/file/qQZ2skJ3


----------



## Membre supprimé 1129907 (20 Août 2018)

Dans ce cas, juste inverser mise et résultat dans le calcul ne serait-il pas suffisant ?

```
echo $participant '=>' $((var_resultat - var_mise)) '€'
```


----------



## Membre supprimé 1129907 (20 Août 2018)

Un correction pour gérer les nom à rallonge (alex se retrouvera dans alexandra) :

```
## Soustraction de  MISE - GAIN
liste_participant=$(cut -f 1 -d';' /Users/xxx/Desktop/KENODATA/MISE.txt | sed 's/^@//')

for participant in $liste_participant
do

var_mise=0
var_resultat=0

var_mise=$(grep -i "@${participant};" /Users/xxx/Desktop/KENODATA/MISE.txt | cut -f 2 -d';')
var_resultat=$(egrep -i "^${participant} " /Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt | cut -f 3 -d' ')

echo $participant '=>' $((var_mise - var_resultat)) '€'

done > /Users/xxx/Desktop/KENODATA/MISEGAIN.txt
```

Pour le var_resultat, j'utilise egrep qui permet les expression régulière. Le "^" correspond au début de ligne, il trouvera donc tout les noms commençant en début de ligne et suivi d'un espace.

A noter que dans l'intégralité du dossier KENODATA, ton fichier "RESULTATSTATS.txt" n'a pas le bon encodage et ne pourra pas être traité par le script. Le var_resultat sera donc toujours vide dans ce cas.


----------



## symbol (21 Août 2018)

J'ai mis le code proposé (qui prends en compte le probs de alex/alexandra). 
J'ai changé l'encodage de RESULTATSTATS.txt de utf-16 en utf-8 (son nom est RESULTATSTATS_UTF8.txt)
Mais malgré cela, le calcul "mise & gain" ne fonctionne toujours pas correctement.



voici le code modifié

```
############################################################################################
##############  MISEGAIN (calcul MISE - GAIN pour avoir la balance  )##############
############################################################################################
## creation du fichier MISEGAIN.txt avec ajout du texte 'Depuis le tirage N°1 de l historique votre balance est de :'
echo  'Depuis le tirage N°1 de l historique votre balance est de :' > /Users/xxx/Desktop/KENODATA/MISEGAIN.txt

# Ajout des grilles jouées par les membres afin d'additionner les mises totales de chacun. le nombre de lignes est limité a 5000.
cat "/Users/xxx/Desktop/KENODATA/mygames.txt" >> "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 >> "/Users/xxx/Desktop/KENODATA/mygames_full.txt"
#cat "/Users/xxx/Desktop/KENODATA/mygames.txt" "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | head -5000 > "/Users/xxx/Desktop/KENODATA/mygames_full.tmp" && mv "/Users/xxx/Desktop/KENODATA/mygames_full.tmp" "/Users/xxx/Desktop/KENODATA/mygames_full.txt"

while IFS= read -r ligne

do
  joueur_gain=$(echo ${ligne} | sed "s/ [- 0-9]*$/;1/" | sed "s/_X\([0-9][0-9]*\);1$/;\1/" )
  echo ${joueur_gain}
done < "/Users/xxx/Desktop/KENODATA/mygames_full.txt" | awk -F';' '
  {
    tableau[$1]=tableau[$1]+$2
  }
  END {
    for ( joueur in tableau ) {
      printf "%s;%s\n",joueur,tableau[joueur]
    }
  }' | sort > "/Users/xxx/Desktop/KENODATA/MISE.txt"


# sed -e 's/@//' /Users/xxx/Desktop/KENODATA/MISE.txt > /Users/xxx/Desktop/KENODATA/MISECLEAN1.txt
# sed 's/;/ : /' /Users/xxx/Desktop/KENODATA/MISECLEAN1.txt > /Users/xxx/Desktop/KENODATA/MISECLEAN2.txt

## Soustraction de  MISE - GAIN
liste_participant=$(cut -f 1 -d';' /Users/xxx/Desktop/KENODATA/MISE.txt | sed 's/^@//')

for participant in $liste_participant
do

var_mise=0
var_resultat=0

var_mise=$(grep -i "@${participant};" /Users/xxx/Desktop/KENODATA/MISE.txt | cut -f 2 -d';')
var_resultat=$(egrep -i "^${participant} " /Users/xxx/Desktop/KENODATA/RESULTATSTATS_UTF8.txt | cut -f 3 -d' ')

echo $participant '=>' $((var_mise - var_resultat)) '€'

done > /Users/xxx/Desktop/KENODATA/MISEGAIN.txt



#converti l'encodage format UTF-8 en UTF-16 afin affiché le symbole "€" dans la fenetre du RECAP (puis renomme MISEGAIN2.txt en MISEGAIN.txt)
iconv -f 'UTF-8' -t 'UTF-16' "/Users/xxx/Desktop/KENODATA/MISEGAIN.txt" > "/Users/xxx/Desktop/KENODATA/MISEGAIN2.txt"
mv "/Users/xxx/Desktop/KENODATA/MISEGAIN2.txt" "/Users/xxx/Desktop/KENODATA/MISEGAIN.txt"
```


----------



## symbol (21 Août 2018)

Je repense a truc.

cette ligne

```
echo $participant '=>' $((var_mise - var_resultat)) '€'
```

elle prends la mise du tirage effectué moins (-) le gain du tirage effectué et sauvegarde le resultat de la soustraction dans MISEGAIN.txt. C'est la procedure pour 1 tirage.

MAIS, on veut connaitre la balance sur l'ensemble des tirages depuis le N°1 (*Nb Tirage Historique:*)

il faut ajouter les resultats des nouveaux calculs (var_mise - var_resultat) aux resultats deja existants dans MISEGAIN.txt

C'est pas evident par texte de bien me faire comprendre :-/


----------



## Membre supprimé 1129907 (21 Août 2018)

Poste un exemple (une ligne) pour une personne des différents fichiers ainsi que le calcul que tu veux faire. Ce sera plus simple


----------



## symbol (21 Août 2018)

Démonstration pour 1 personne et pour 1 tirage.
On va faire ultra simple. 1 tirage/jour

Explication pas a pas.

NOTE :
Le fichier MISEGAIN.txt contient la balance des mises (qu'on soustrait) + gains (qu'on additionne)


*JOUR #1*
Lundi midi (avant le tirage)
je joue 4 grilles d'une mise de 1€/grille
(le fichier MISE.txt contient  "@magnetico;4" ) .....<----    Donc c'est OK

Lundi midi (après le tirage)
je gagne 50€ (1 grille a 50 € + 3 grilles perdues)
(le fichier RESULTATSTAS.txt contient "MAGNETICO > 50 €".....<----    Donc c'est OK

Le fichier MISEGAIN.txt contient  :
magnetico => - 4 €  .....<----    Donc c'est faux

Le fichier MISEGAIN.txt devrait contenir :
magnetico => 46 €
(46 € = 4 € de mise + 50€ de gains, cela fait un bénéfice de 46€)


*JOUR #2*
Mardi midi (avant le tirage)
je joue 4 grilles d'une mise de 1€/grille
(le fichier MISE.txt contient  "@magnetico;8" ) .....<----    Donc c'est OK (8€ car 4€ du lundi + 4€ du mardi)

Mardi midi (après le tirage)
je gagne 50€ (1 grille a 50 € + 3 grilles perdues)
(le fichier RESULTATSTAS.txt contient "MAGNETICO > 100 €".....<----    Donc c'est OK (100€ car 50€ du lundi + 50€ du mardi)

Le fichier MISEGAIN.txt contient  :
magnetico => - 8 €  .....<----    Donc c'est faux

Le fichier MISEGAIN.txt devrait contenir :
magnetico => 92 €
(92 € = 50€ (gain de lundi) + 50 € (gain de lundi), - 8 € de mise (le cumul des mises de lundi (4€) + mise de mardi (4€))

ou ce qui revient au meme
(92 € = - 8 € de mise (le cumul des mises de lundi (4€) + mise de mardi (4€)) + 50€ (gain de lundi) + 50 € (gain de lundi)


ainsi de suite pour tous les tirages suivants....

Le fichier MISEGAIN.txt contient la balance des gain/mises.
il est necessaire d'additionner/soustraire pour chaque tirage,


----------



## symbol (21 Août 2018)

Est-ce que je t'ai donné les informations que tu souhaitais ?


----------



## Membre supprimé 1129907 (21 Août 2018)

Donc la version avec cette modification fonctionne bien correctement.


ecatomb a dit:


> Dans ce cas, juste inverser mise et résultat dans le calcul ne serait-il pas suffisant ?
> 
> ```
> echo $participant '=>' $((var_resultat - var_mise)) '€'
> ```



Ton problème vient du format du fichier MISE ou du fichier RESULTATSTATS.
Je vais voir si je trouve quoi


----------



## Membre supprimé 1129907 (21 Août 2018)

Trouvé, c'est bien le UTF16 qui posait problème 


```
file *

LOGNOMBRETIRAGE.txt:          ASCII text
LOGTIRAGE.txt:                UTF-8 Unicode text
MISE.txt:                     ASCII text
MISEGAIN.txt:                 Big-endian UTF-16 Unicode text
NUMTIRAGE.txt:                ASCII text
PODIUM.txt:                   Big-endian UTF-16 Unicode text
RESULTATS.txt:                Big-endian UTF-16 Unicode text
RESULTATSHISTORIQUE.txt:      Big-endian UTF-16 Unicode text
RESULTATSHISTORIQUE_UTF8.txt: UTF-8 Unicode text
RESULTATSSMS.txt:             UTF-8 Unicode text
RESULTATSSMS2.txt:            UTF-8 Unicode text, with very long lines, with no line terminators
RESULTATSTATS.txt:            Big-endian UTF-16 Unicode text
RESULTATSvocal.aiff:          IFF data, AIFF-C compressed audio
RESULTATSvocal.mp3:           Audio file with ID3 version 2.4.0, contains:MPEG ADTS, layer III, v2,  56 kbps, 22.05 kHz, Monaural
RESULTATSvocal.txt:           UTF-8 Unicode text
TOP1.txt:                     Big-endian UTF-16 Unicode text
TOP3.txt:                     Big-endian UTF-16 Unicode text, with no line terminators
keno.html:                    HTML document text, UTF-8 Unicode text, with very long lines
mygames.txt:                  ASCII text
mygames_full.txt:             ASCII text
```

Cette version devrait te donner le bon résultat :

Conversion du RESULTATSTATS de UTF16 vers UTF8 (comme tu as essayé de faire)
Calcul dans le sens "var_resultat - var_mise"
Avec les fichiers de ton "KENODATA2.zip" ça semble bien marcher.


```
## Soustraction de  MISE - GAIN
liste_participant=$(cut -f 1 -d';' /Users/xxx/Desktop/KENODATA/MISE.txt | sed 's/^@//')
iconv -f 'UTF-16' -t 'UTF-8' "/Users/xxx/Desktop/KENODATA/RESULTATSTATS.txt" > "/Users/xxx/Desktop/KENODATA/RESULTATSTATS_UTF8.txt"

for participant in $liste_participant
do

var_mise=0
var_resultat=0

var_mise=$(grep -i "@${participant};" /Users/xxx/Desktop/KENODATA/MISE.txt | cut -f 2 -d';')
var_resultat=$(egrep -i "^${participant} " /Users/xxx/Desktop/KENODATA/RESULTATSTATS_UTF8.txt | cut -f 3 -d' ')

echo $participant '=>' $((var_resultat - var_mise)) '€'

done > /Users/xxx/Desktop/KENODATA/MISEGAIN.txt
```


----------



## symbol (22 Août 2018)

ahhhhh 

Je remplace l'ancien code avec le nouveau.
Je fais un reset de tous les fichiers a partir de ce midi.
On verra bien ce que ca donne ici (normalement pareil)

C'est quoi cette notion de "Big-endian" ? Je l'ai deja vu pas mal de fois

Merci


----------



## Membre supprimé 1129907 (22 Août 2018)

Là, tu me poses une colle


----------



## symbol (22 Août 2018)

@ecatomb

Je reviens vers toi pour te rendre compte.
Tout semble baigner dans l'huile 

Il me reste juste a convertir une copie de MISEGAIN.txt (en UTF16 pour afficher le symbole "€" correctement.
Sans convertion, je vois ca :


----------



## symbol (22 Août 2018)

Pour la convertion, je propose 


```
iconv -f 'UTF-16' -t 'UTF-8' "/Users/xxx/Desktop/KENODATA/MISEGAIN.txt" > "/Users/xxx/Desktop/KENODATA/MISEGAIN_UTF8.txt"
```


----------



## Membre supprimé 1129907 (22 Août 2018)

Donc un petit iconv vers un autre fichier (misegain_utf16?) et ce sera bon

Plutôt celui-ci et le fichier utf16 à utiliser sur ton site

```
Code (Text):
iconv -f 'UTF-8' -t 'UTF-16' "/Users/xxx/Desktop/KENODATA/MISEGAIN.txt" > "/Users/xxx/Desktop/KENODATA/MISEGAIN_UTF16.txt"
```


----------



## symbol (22 Août 2018)

J'ai inversé en ecrivant 

Je crois que c'est fini 






Merci pour ta patience, et le tout le travail effectué.


----------

