PERL créer un tableau 2D a partir d'un txt
ksper
-
elbeho -
elbeho -
Bonjour a tous,
Je débute en perl et pour réaliser un traitement sur des valeurs contenues dans un fichier texte; j'aurais besoin des les mettre dans un tableau 2D.
Voici comment le fichier texte se présente :
[code]
premier nom 123 987 876 1452
le-deux 762 123 876
troisième/nom 762 789 0981
un (dernier) 999 526 127
...
[/code]
et voici le genre le tableau que je voudrais obtenir :
[code]
@data = (["premier nom",123,987,876,1452],
["le-deux",762,123,876],
["troisième/nom",762,789,0981],
["un (dernier)",999,526,127],
... )
[/code]
En gros, j'aimerais que tous les :
$data[x][O] me renvoient les noms. Et les
$data[x][y] me renvoient les valeurs. (y>0).
J'ai essayé de faire ca avec des push mais je ne m'en sors pas. les noms sont uniquements composés de lettres et caractère / , ( ) -
et les valeur uniquement des chiffres.
Si quelqu'un pouvait me donner un coup de main...
Merci
Je débute en perl et pour réaliser un traitement sur des valeurs contenues dans un fichier texte; j'aurais besoin des les mettre dans un tableau 2D.
Voici comment le fichier texte se présente :
[code]
premier nom 123 987 876 1452
le-deux 762 123 876
troisième/nom 762 789 0981
un (dernier) 999 526 127
...
[/code]
et voici le genre le tableau que je voudrais obtenir :
[code]
@data = (["premier nom",123,987,876,1452],
["le-deux",762,123,876],
["troisième/nom",762,789,0981],
["un (dernier)",999,526,127],
... )
[/code]
En gros, j'aimerais que tous les :
$data[x][O] me renvoient les noms. Et les
$data[x][y] me renvoient les valeurs. (y>0).
J'ai essayé de faire ca avec des push mais je ne m'en sors pas. les noms sont uniquements composés de lettres et caractère / , ( ) -
et les valeur uniquement des chiffres.
Si quelqu'un pouvait me donner un coup de main...
Merci
A voir également:
- PERL créer un tableau 2D a partir d'un txt
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Créer un compte google - Guide
- Tableau word - Guide
- Créer un lien pour partager des photos - Guide
- Créer un compte gmail - Guide
1 réponse
Salut
(s'il est encore temps)
Quelque chose comme ca :
Notez les [ ] dans le push.
Et il faut peut-etre ameliorer la regexp du if()
Et voir si un hash (%data) avec le nom en cle n'irait pas mieux... mais ca depend du probleme a resoudre :-)
Cordialement
(s'il est encore temps)
Quelque chose comme ca :
while ( <> ) { my ($a, $b); if ( /^([^\d]+)\s+(.*)$/ ) { $a = $1; $b = $2; push @data, [ $a , split (/ /, $b) ]; } }
Notez les [ ] dans le push.
Et il faut peut-etre ameliorer la regexp du if()
Et voir si un hash (%data) avec le nom en cle n'irait pas mieux... mais ca depend du probleme a resoudre :-)
Cordialement