Pb de tableau
Résolu/Fermé
jml263
-
27 févr. 2013 à 21:05
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 1 mars 2013 à 09:18
[Dal] Messages postés 6203 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 29 janvier 2025 - 1 mars 2013 à 09:18
A voir également:
- Xxxxxczzzz
- Tableau croisé dynamique - Guide
- Tableau ascii - Guide
- Tableau word - Guide
- Trier tableau excel - Guide
- Tableau de raccourcis clavier - Guide
1 réponse
[Dal]
Messages postés
6203
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
29 janvier 2025
1 097
Modifié par [Dal] le 28/02/2013 à 10:28
Modifié par [Dal] le 28/02/2013 à 10:28
Salut jml263,
Voilà une méthode.
1.
Tout d'abord, tu charges chaque ligne du premier fichier dans un hash, avec la valeur récupérée comme clef (en supprimant le \n avec chomp), et en valeur une chaîne vide.
2.
L'étape 2 suppose que l'on utilise une regexp sur chaque ligne du 2ème fichier.
Dans :
Est-ce qu'on peut dire que le caractère à matcher est :
- dans une ligne commençant par 5 caractères quelconques
- se trouve en 6ème position
- qu'il est suivi de 4 caractères quelconques
- puis d'un ; et d'un nombre composé de chiffres terminant la ligne
Si oui, la regex suivante
Et donc, tu utilises chaque caractère matché comme clef de ton hash, pour mettre à jour le hash avec la valeur récupérée (y compris donc le ; qui est matché aussi).
3.
Tu as toutes tes données dans le hash désormais. Il te suffit de le parcourir, éventuellement en le triant par rapport aux clefs, et d'afficher pour chaque clef une ligne où tu concatènes la clef et la valeur contenue.
Dal
Voilà une méthode.
1.
Tout d'abord, tu charges chaque ligne du premier fichier dans un hash, avec la valeur récupérée comme clef (en supprimant le \n avec chomp), et en valeur une chaîne vide.
2.
L'étape 2 suppose que l'on utilise une regexp sur chaque ligne du 2ème fichier.
Dans :
XxxxxByyyy;123 XxxxxCzzzz;456il te faudra une regex pour matcher B dans "XxxxxByyyy;123" et C dans "XxxxxCzzzz;456" (et pour récupérer ce qui est à la suite du ; y compris le ;, c'est mieux dans ton cas)
Est-ce qu'on peut dire que le caractère à matcher est :
- dans une ligne commençant par 5 caractères quelconques
- se trouve en 6ème position
- qu'il est suivi de 4 caractères quelconques
- puis d'un ; et d'un nombre composé de chiffres terminant la ligne
Si oui, la regex suivante
^.{5}(.).{4}(;[0-9]+)$matche ce caractère, d'une part, et le point virgule suivi du nombre, d'autre part.
Et donc, tu utilises chaque caractère matché comme clef de ton hash, pour mettre à jour le hash avec la valeur récupérée (y compris donc le ; qui est matché aussi).
3.
Tu as toutes tes données dans le hash désormais. Il te suffit de le parcourir, éventuellement en le triant par rapport aux clefs, et d'afficher pour chaque clef une ligne où tu concatènes la clef et la valeur contenue.
Dal
28 févr. 2013 à 20:53
JM
1 mars 2013 à 09:18