Rechercher : dans
Par :

[PERL]tableau de valeurs dans une variable

Dernière réponse le 29 oct 2008 à 14:51:53 phoenix1984, le 29 oct 2008 à 13:38:10 
 Signaler ce message aux modérateurs

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

Configuration: Windows XP
Firefox 3.0.3

Meilleures réponses pour « [PERL]tableau de valeurs dans une variable » dans :
[Bash] La variable d'environnement PATH VoirLa variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
VB6 Retrouver les valeurs RGB d'une couleur VoirDim R as integer Dim G as integer Dim B as integer Sub TrouveRGB(Coul As Long) R = &HFF& And Coul G = (&HFF00& And Coul ) \ 256 B = (&HFF0000 And Coul ) \ 65536 End Sub Et l'inverse : Function TrouveCoul(R As Long, G As Long,...
Les variables avec Perl VoirConcept de variable avec Perl Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage Perl peuvent être de trois...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
Javascript - Les tableaux VoirIntroduction à la notion de tableau Les variables de Javascript ne permettent de stocker qu'une seule donnée à la fois. Or, étant donné qu'il est souvent utile de manipuler de nombreuses données, le concept de variable se révéle parfois...

1

lami20j, le 29 oct 2008 à 14:09:04

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.


106485010510997108

Répondre à lami20j

2

phoenix1984, le 29 oct 2008 à 14:23:45

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 :)

Répondre à phoenix1984

3

lami20j, le 29 oct 2008 à 14:28:38
  • +2

Re,

alors essai

my $data=[ split /,/,qx/cat data.txt/ ];
--
106485010510997108

Répondre à lami20j

4

phoenix1984, le 29 oct 2008 à 14:48:49

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 !

Répondre à phoenix1984

5

 lami20j, le 29 oct 2008 à 14:51:53

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. 106485010510997108

Répondre à lami20j