[PERL]tableau de valeurs dans une variable
Résolu
phoenix1984
Messages postés
30
Date d'inscription
Statut
Membre
Dernière intervention
-
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
lami20j Messages postés 21331 Date d'inscription Statut Modérateur, Contributeur sécurité Dernière intervention -
Bonjour,
voici un bout de programme opérationnel qui me fournit un joli graph.
#!/usr/bin/perl -i.orig
use perlchartdir;
# The data for the line chart CONNEXIONS
my $data = [30, 28, 40, 55, 75, 68, 54, 60, 50, 62, 75, 65, 75, 91, 60, 55, 53, 35, 50, 66, 56, 48, 52, 65, 62];
# The labels for the line chart HEURES
my $labels = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12",
"13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"];
# Create a XYChart object of size 250 x 250 pixels
my $c = new XYChart(500, 500);
# Set the plotarea at (30, 20) and of size 200 x 200 pixels
$c->setPlotArea(30, 20, 450, 450);
# Add a line chart layer using the given data
$c->addLineLayer($data);
# Set the labels on the x axis.
$c->xAxis()->setLabels($labels);
# Display 1 out of 3 labels on the x-axis.
$c->xAxis()->setLabelStep(1);
# output the chart
$c->makeChart("simpleline.png")
Mais ce programme est "statique" dans le sens où il contient les valeurs des variables $data & $labels
j'aimerais plutôt qu'il aille les lire dans un fichier texte tout simple ..
Si vous avez une idée elle est la bienvenue ...
j'ai déjà fait un petit test :
#!/usr/bin/perl -i.orig
use perlchartdir;
use Shell qw(cat);
my $data=cat("data.txt");
...
..
.
# Add a line chart layer using the given data
$c->addLineLayer([$data]);
.
..
...
qui ne fonctionne ÉVIDEMENT pas ..
Merci
Vincent
voici un bout de programme opérationnel qui me fournit un joli graph.
#!/usr/bin/perl -i.orig
use perlchartdir;
# The data for the line chart CONNEXIONS
my $data = [30, 28, 40, 55, 75, 68, 54, 60, 50, 62, 75, 65, 75, 91, 60, 55, 53, 35, 50, 66, 56, 48, 52, 65, 62];
# The labels for the line chart HEURES
my $labels = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12",
"13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"];
# Create a XYChart object of size 250 x 250 pixels
my $c = new XYChart(500, 500);
# Set the plotarea at (30, 20) and of size 200 x 200 pixels
$c->setPlotArea(30, 20, 450, 450);
# Add a line chart layer using the given data
$c->addLineLayer($data);
# Set the labels on the x axis.
$c->xAxis()->setLabels($labels);
# Display 1 out of 3 labels on the x-axis.
$c->xAxis()->setLabelStep(1);
# output the chart
$c->makeChart("simpleline.png")
Mais ce programme est "statique" dans le sens où il contient les valeurs des variables $data & $labels
j'aimerais plutôt qu'il aille les lire dans un fichier texte tout simple ..
Si vous avez une idée elle est la bienvenue ...
j'ai déjà fait un petit test :
#!/usr/bin/perl -i.orig
use perlchartdir;
use Shell qw(cat);
my $data=cat("data.txt");
...
..
.
# Add a line chart layer using the given data
$c->addLineLayer([$data]);
.
..
...
qui ne fonctionne ÉVIDEMENT pas ..
Merci
Vincent
A voir également:
- [PERL]tableau de valeurs dans une variable
- Tableau word - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Imprimer tableau excel sur une page - Guide
- Les données fournies dans le fichier à télécharger peuvent être synthétisées par le tableau récapitulatif ci-dessous. dans le fichier, générez ce tableau automatiquement (tableau croisé dynamique ou table de pilote) à partir des quatre premières colonnes. il manque 5 valeurs dans le tableau ci-dessous. retrouvez-les dans votre tableau, puis reportez-les arrondies à l’entier le plus proche. - Guide
5 réponses
Salut,
Il faut que tu nous montre la structure de ton fichier text.
A savoir que $date = [.....] veut dire qu'on affecte à la variable scalaire $date un tableau anonyme.
Pareil pour $labels.
Il faut que tu nous montre la structure de ton fichier text.
A savoir que $date = [.....] veut dire qu'on affecte à la variable scalaire $date un tableau anonyme.
Pareil pour $labels.
salut !
merci pour ta réponse
mon fichier texte ne contiendra que les valeurs sous cette forme :
30, 28, 40, 55, 75, 68, 54, 60, 50, 62, 75, 65, 75, 91, 60, 55, 53, 35, 50, 66, 56, 48, 52, 65, 62
en gros sans les crochets quoi.
merci :)
merci pour ta réponse
mon fichier texte ne contiendra que les valeurs sous cette forme :
30, 28, 40, 55, 75, 68, 54, 60, 50, 62, 75, 65, 75, 91, 60, 55, 53, 35, 50, 66, 56, 48, 52, 65, 62
en gros sans les crochets quoi.
merci :)
Re,
MERCi !!
ca fonctionne très bien ! exactement ce que je voulais !
juste une mini modif :
my $data=[ split /,/`,qx/cat data.txt/ ]; => my $data=[ split /,/ ,qx/cat data.txt/ ];
j'ai viré le <<'>> qui posait problème.
Merci en tout cas, comme d'hab, de ta rapidité et tout et tout !
MERCi !!
ca fonctionne très bien ! exactement ce que je voulais !
juste une mini modif :
my $data=[ split /,/`,qx/cat data.txt/ ]; => my $data=[ split /,/ ,qx/cat data.txt/ ];
j'ai viré le <<'>> qui posait problème.
Merci en tout cas, comme d'hab, de ta rapidité et tout et tout !
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
j'ai viré le <<'>> qui posait problème.
En fait c'est une erreur de frappe si tu veux.
Pour capturer la sortie d'une commande on peut utiliser les apostrophes inverses `` ou l'opérateur qx//
J'ai commencé avec ` ensuite j'ai changé d'avis pour la lisibilité ;-DD et j'ai oublié de l'effacer ;-)
De rien ;-))
P.S. Ben, j'ai eu encore la possibilité et j'ai corrigé. Merci.
j'ai viré le <<'>> qui posait problème.
En fait c'est une erreur de frappe si tu veux.
Pour capturer la sortie d'une commande on peut utiliser les apostrophes inverses `` ou l'opérateur qx//
J'ai commencé avec ` ensuite j'ai changé d'avis pour la lisibilité ;-DD et j'ai oublié de l'effacer ;-)
De rien ;-))
P.S. Ben, j'ai eu encore la possibilité et j'ai corrigé. Merci.