Help Perl
clement.
Messages postés
289
Date d'inscription
Statut
Membre
Dernière intervention
-
clement. Messages postés 289 Date d'inscription Statut Membre Dernière intervention -
clement. Messages postés 289 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je voudrais afficher le contenu d'un fichier sous une page web en langage Perl.
Il ne s'agit pas d'afficher simplement et betement le contenu. ça j'y suis arrivé.
Mais de trier dans celui-ci...
est ce que quelqu'un pourrait m'aider ?
Je voudrais afficher le contenu d'un fichier sous une page web en langage Perl.
Il ne s'agit pas d'afficher simplement et betement le contenu. ça j'y suis arrivé.
Mais de trier dans celui-ci...
est ce que quelqu'un pourrait m'aider ?
A voir également:
- Help Perl
- Denon perl pro test - Accueil - Audio
- Active perl - Télécharger - Édition & Programmation
- DzSoft Perl Editor - Télécharger - Édition & Programmation
- Comment lire un fichier .pl perl ? - Forum Windows
- Perl: transformer un fichier en package ✓ - Forum Perl
26 réponses
Bonjour,
Qu'entend tu par trier le contenu?
peux tu mettre ce que tu as deja coder pour l'affichage?
Qu'entend tu par trier le contenu?
peux tu mettre ce que tu as deja coder pour l'affichage?
Pour lire mon ficher et l'afficher sur ma page web mon code est tout simple :
print "Content-type: text/html\n\n"; #Pour pouvoir être lu sur une page Web (HTML)
@ARGV = ("monfichier"); #Lire le fichier voulu
while (<>)
{
print;
}
le fichier en question c'est celui là !
lmstat - Copyright (C) 1989-2001 Globetrotter Software, Inc.
Flexible License Manager status on Fri 9/12/2008 11:26
License server status: 27000@serveur
License file(s) on chemin_serveur
nom_serveur: license server
Vendor daemon status (on serveur):
Version: UP v7.2
Feature usage info:
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 1 license available)
Users of ***: (Total of 1 license available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Donc ce contenu arrive dans ma page web mais pas de cette forme là ...
Ce que je veux c'est realisé un tableau ou sera mis en colonne :
- le nom de la licence (représenté par les ***)
- le nombre de licences disponibles
Lorsqu'un utilisateur utilise une de ses licences sa rajoute des informations qu'il faut stockés dans un second tableau :
- le login de la personne qui utilise cette licence( dans l'exemple il n'y a personne a ce moment)
- le nom de la machine
- la date de début d'utilisation.
voila... pour moi c'est vraiment pas simple....
merci de l'aide
print "Content-type: text/html\n\n"; #Pour pouvoir être lu sur une page Web (HTML)
@ARGV = ("monfichier"); #Lire le fichier voulu
while (<>)
{
print;
}
le fichier en question c'est celui là !
lmstat - Copyright (C) 1989-2001 Globetrotter Software, Inc.
Flexible License Manager status on Fri 9/12/2008 11:26
License server status: 27000@serveur
License file(s) on chemin_serveur
nom_serveur: license server
Vendor daemon status (on serveur):
Version: UP v7.2
Feature usage info:
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 1 license available)
Users of ***: (Total of 1 license available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Users of ***: (Total of 2 licenses available)
Donc ce contenu arrive dans ma page web mais pas de cette forme là ...
Ce que je veux c'est realisé un tableau ou sera mis en colonne :
- le nom de la licence (représenté par les ***)
- le nombre de licences disponibles
Lorsqu'un utilisateur utilise une de ses licences sa rajoute des informations qu'il faut stockés dans un second tableau :
- le login de la personne qui utilise cette licence( dans l'exemple il n'y a personne a ce moment)
- le nom de la machine
- la date de début d'utilisation.
voila... pour moi c'est vraiment pas simple....
merci de l'aide
donc
je pense que tu connais la commande "split" en perl (separateur de champ)
il faut que tu fasse un split sur chaque ligne.
je pense que tu connais la commande "split" en perl (separateur de champ)
il faut que tu fasse un split sur chaque ligne.
#admettons que tu enregistre la ligne de ton fichier dans $ligne @C_ligne = split " ",$ligne; #ici tu récupère les champs de la ligne qui sont séparés par un espace #maintenant tu veux traiter les lignes où sont contenus les infos sur la licence. for $i (0..@C_ligne) if ( $C_ligne eq "Users") { $nom_licence[$i] = $C_ligne[2]; #attention cela marche que si le nom de la licence est en seul mot $nbr_licence[$i] = $C_ligne[6] ; # j'ai un doute sur le numero 6 , c ptet 7 } } #il faut que tu lise ton fichier ligne par ligne pour cela
En effet je connais la commande split mais je savais pas trop comment l'utiliser.
Donc ca donne ça :
print "Content-type: text/html\n\n"; #Pour pouvoir être lu sur une page Web (HTML)
@ARGV = ("monfichier"); #Lire le fichier voulu
while (<>)
{
@C_ligne = split " ",$ligne;
for $i (0..@C_ligne)
if ( $C_ligne eq "Users")
{
$nom_licence[$i] = $C_ligne[2]; #Le nom des licences est bien en un seul mot (ex : une_licence )
$nbr_licence[$i] = $C_ligne[6] ; # là je comprends pas bien a quoi correspond le 6 ou 7 ? ca représente le 7eme ou 8eme mot de la ligne ?
print; # enfin le programme est t-il correcte ?
} }
Donc ca donne ça :
print "Content-type: text/html\n\n"; #Pour pouvoir être lu sur une page Web (HTML)
@ARGV = ("monfichier"); #Lire le fichier voulu
while (<>)
{
@C_ligne = split " ",$ligne;
for $i (0..@C_ligne)
if ( $C_ligne eq "Users")
{
$nom_licence[$i] = $C_ligne[2]; #Le nom des licences est bien en un seul mot (ex : une_licence )
$nbr_licence[$i] = $C_ligne[6] ; # là je comprends pas bien a quoi correspond le 6 ou 7 ? ca représente le 7eme ou 8eme mot de la ligne ?
print; # enfin le programme est t-il correcte ?
} }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
dnas ton cas là le programme ne va reconnaitre la variable $ligne.
il faudrait faire
après à toi de restrucutrer les données enregistrée pour savoir comment tu les réécris
il faudrait faire
print "Content-type: text/html\n\n"; #Pour pouvoir être lu sur une page Web (HTML) open (FIC,"<Ton_fichier"); while ($ligne = <FIC>) { @C_ligne = split " ",$ligne; for $i (0..@C_ligne) { if ( $C_ligne eq "Users") { $nom_licence[$i] = $C_ligne[2]; #Le nom des licences est bien en un seul mot (ex : une_licence ) $nbr_licence[$i] = $C_ligne[6] ; # le 6 indique le numero du champ que l'on veut récupérer en sachant que le premier champ est 0 , donc 6 correspond au 7e champ. } } } print;
après à toi de restrucutrer les données enregistrée pour savoir comment tu les réécris
je viens de constater une belle boulette dans mon "for"
je te demande de m'excuser d'ailleurs.
procede autrement.
je te demande de m'excuser d'ailleurs.
procede autrement.
print "Content-type: text/html\n\n"; #Pour pouvoir être lu sur une page Web (HTML) $i = 0; open (FIC,"<Ton_fichier"); while ($ligne = <FIC>) { @C_ligne = split " ",$ligne; if ( $C_ligne eq "Users") { $nom_licence[$i] = $C_ligne[2]; #Le nom des licences est bien en un seul mot (ex : une_licence ) $nbr_licence[$i] = $C_ligne[6] ; # le 6 indique le numero du champ que l'on veut récupérer en sachant que le premier champ est 0 , donc 6 correspond au 7e champ. $i += 1; } } #la c'est correct et moins encombrant print;
ce n'est pas obligatoire , c'est selon l'utilisation que tu en fais.
tu peux mettre
my $i = 0;
si ça peut te soulager :-)
tu peux mettre
my $i = 0;
si ça peut te soulager :-)
Moi personnellement si ca a pas d'importance je m'en fiche lol
mais le petit malin m'indique plein plein d'erreurs ^^ dans le error.log
je mets juste les éléments concernés ;)
(Did you mean &i instead?)
Variable "$i" is not imported at /var/www/cgi-bin/script line 32.
(Did you mean &i instead?)
Variable "$i" is not imported at /var/www/cgi-bin/script line 33.,
(Did you mean &i instead?)
Variable "$i" is not imported at /var/www/cgi-bin/script line 34.
(Did you mean &i instead?)
Global symbol "$i" requires explicit package name at /var/www/cgi-bin/script line 24., Global symbol "$ligne" requires explicit package name at /var/www/cgi-bin/script line 26., Global symbol "@C_ligne" requires explicit package name at /var/www/cgi-bin/script line 28.
Global symbol "$ligne" requires explicit package name at /var/www/cgi-bin/script line 28., Global symbol "$C_ligne" requires explicit package name at /var/www/cgi-bin/script line 30
Global symbol "@nom_licence" requires explicit package name at /var/www/cgi-bin/script line 32
Global symbol "$i" requires explicit package name at /var/www/cgi-bin/scriptline 32., Global symbol "@C_ligne" requires explicit package name at /var/www/cgi-bin/script line 32
Global symbol "@nbr_licence" requires explicit package name at /var/www/cgi-bin/script line 33
Global symbol "$i" requires explicit package name at /var/www/cgi-bin/script line 33., Global symbol "@C_ligne" requires explicit package name at /var/www/cgi-bin/scriptline 33
Global symbol "$i" requires explicit package name at /var/www/cgi-bin/script line 34., : Execution of /var/www/cgi-bin/script aborted due to compilation errors.
Chouette pas vrai ^^ ? j'ai l'impression qu'il aime pas trop les nouvelles variables...
J'ai une autre question.. le open est-il nécessaire ? j'ai déjà essayé de l'utiliser et a chaque fois il me mets une erreur du style "readline () ..."
pas cette fois parce que ya le reste mais elle viendra apres je pense.
mais le petit malin m'indique plein plein d'erreurs ^^ dans le error.log
je mets juste les éléments concernés ;)
(Did you mean &i instead?)
Variable "$i" is not imported at /var/www/cgi-bin/script line 32.
(Did you mean &i instead?)
Variable "$i" is not imported at /var/www/cgi-bin/script line 33.,
(Did you mean &i instead?)
Variable "$i" is not imported at /var/www/cgi-bin/script line 34.
(Did you mean &i instead?)
Global symbol "$i" requires explicit package name at /var/www/cgi-bin/script line 24., Global symbol "$ligne" requires explicit package name at /var/www/cgi-bin/script line 26., Global symbol "@C_ligne" requires explicit package name at /var/www/cgi-bin/script line 28.
Global symbol "$ligne" requires explicit package name at /var/www/cgi-bin/script line 28., Global symbol "$C_ligne" requires explicit package name at /var/www/cgi-bin/script line 30
Global symbol "@nom_licence" requires explicit package name at /var/www/cgi-bin/script line 32
Global symbol "$i" requires explicit package name at /var/www/cgi-bin/scriptline 32., Global symbol "@C_ligne" requires explicit package name at /var/www/cgi-bin/script line 32
Global symbol "@nbr_licence" requires explicit package name at /var/www/cgi-bin/script line 33
Global symbol "$i" requires explicit package name at /var/www/cgi-bin/script line 33., Global symbol "@C_ligne" requires explicit package name at /var/www/cgi-bin/scriptline 33
Global symbol "$i" requires explicit package name at /var/www/cgi-bin/script line 34., : Execution of /var/www/cgi-bin/script aborted due to compilation errors.
Chouette pas vrai ^^ ? j'ai l'impression qu'il aime pas trop les nouvelles variables...
J'ai une autre question.. le open est-il nécessaire ? j'ai déjà essayé de l'utiliser et a chaque fois il me mets une erreur du style "readline () ..."
pas cette fois parce que ya le reste mais elle viendra apres je pense.
Alors là j'avoue....
essaie en déclarant toutes les variables que l'on utilise avec my .
en faisant attention de bien mettre @ pour les tabelaux .
essaie en déclarant toutes les variables que l'on utilise avec my .
en faisant attention de bien mettre @ pour les tabelaux .
Je sens que mon Perl est complement à la masse....
j'arrive à rien faire avec ce truc là... a par afficher "coucou" ou un tableau mais sans rien a l'intérieur
et quand j'essaye de faire un rsh... c'est même pas ma peine d'y penser...
j'arrive à rien faire avec ce truc là... a par afficher "coucou" ou un tableau mais sans rien a l'intérieur
et quand j'essaye de faire un rsh... c'est même pas ma peine d'y penser...
Salut,
les informations que tu veux stocker dans le deuxième tableau se trouvent où?
- le login de la personne qui utilise cette licence( dans l'exemple il n'y a personne a ce moment)
- le nom de la machine
- la date de début d'utilisation.
les informations que tu veux stocker dans le deuxième tableau se trouvent où?
- le login de la personne qui utilise cette licence( dans l'exemple il n'y a personne a ce moment)
- le nom de la machine
- la date de début d'utilisation.
teste en virant le -w....
lami20j est calé en perl ...
je pense qu'il te filera un coup de main aussi
lami20j est calé en perl ...
je pense qu'il te filera un coup de main aussi
Les autres éléments losqu'un utiliseur prends une licence se rajoutens dans ce meme fichier.
c'est a dire que ca donne ca a la fin j'ai pu trouver un exemple :
Users of ***: (Total of 2 licenses available)
"***" v12.01, vendor:
floating license
machine serveur /dev/tty (v1.0) (serveur/27000 202), start Tue 7/15 10:13
voila...
c'est a dire que ca donne ca a la fin j'ai pu trouver un exemple :
Users of ***: (Total of 2 licenses available)
"***" v12.01, vendor:
floating license
machine serveur /dev/tty (v1.0) (serveur/27000 202), start Tue 7/15 10:13
voila...
Re,
par exemple (attention, ce n'est pas encore un script CGI) pour afficher les licences et le nombre de licences
Dans mon exemple j'utilise le handle DATA et pas un fichier. Mais ce n'est qu'un exemple ;-)
par exemple (attention, ce n'est pas encore un script CGI) pour afficher les licences et le nombre de licences
Dans mon exemple j'utilise le handle DATA et pas un fichier. Mais ce n'est qu'un exemple ;-)
#!/usr/bin/perl use strict;use warnings; while (<DATA>){ next unless /^Users/; print "$1 : $2 licence(s)\n" if /of\s*(.*):.*of\s*(\d+)\s+.*/; } __END__ lmstat - Copyright (C) 1989-2001 Globetrotter Software, Inc. Flexible License Manager status on Fri 9/12/2008 11:26 License server status: 27000@serveur License file(s) on chemin_serveur nom_serveur: license server Vendor daemon status (on serveur): Version: UP v7.2 Feature usage info: Users of ***: (Total of 2 licenses available) Users of ***: (Total of 2 licenses available) Users of ***: (Total of 2 licenses available) Users of ***: (Total of 2 licenses available) Users of ***: (Total of 1 license available) Users of ***: (Total of 1 license available) Users of ***: (Total of 2 licenses available) Users of ***: (Total of 2 licenses available) Users of ***: (Total of 2 licenses available) Users of ***: (Total of 2 licenses available) Users of ***: (Total of 2 licenses available) lami20j@debian:~/trash$ perl licence.pl *** : 2 licence(s) *** : 2 licence(s) *** : 2 licence(s) *** : 2 licence(s) *** : 1 licence(s) *** : 1 licence(s) *** : 2 licence(s) *** : 2 licence(s) *** : 2 licence(s) *** : 2 licence(s) *** : 2 licence(s)
je n'aurais qu'un mot... heu...:)
qui fait quoi ? j'ai pas tout suivi... habituellement je comprends mais là c'est tout confus..
qui fait quoi ? j'ai pas tout suivi... habituellement je comprends mais là c'est tout confus..