Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2814 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Problème de de print dans une chaine!!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Perl] Problème de de print dans une chaine!!

n°1082746
mc40
Posté le 13-05-2005 à 21:08:26  profilanswer
 

Bon je savais que j'étais pas fait pour la prog mais la j'en peux plus!!!!
 
#! /usr/bin/perl
 
use strict;
my $val;
my $vall;
my @FCS_file;
my @FCS_mesure=(0,0,109,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
my $file = 'FCS_buffer.txt';
 
open(FIC,$file) or die;
@FCS_file = <FIC>;
close(FIC);
 
print "FCS_file  = @FCS_file\nFCS_mesure= @FCS_mesure\n";
 
my $val = @FCS_file[2];
print "FCS_file[2] = $val\n";
 
my $vall = @FCS_mesure[2];
print "FCS_mesure[2] = $vall\n";
 
RESULTAT!!!!
 
FCS_file  = 0 0 109 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
FCS_mesure= 0 0 109 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
FCS_file[2] =  
FCS_mesure[2] = 109
 
 
POURQUOI LES FCS_FILE NE S AFFICHE PAS !!!!!!! GRRRRRRRRRRRRRR


Message édité par mc40 le 16-05-2005 à 10:00:03
mood
Publicité
Posté le 13-05-2005 à 21:08:26  profilanswer
 

n°1083211
mc40
Posté le 14-05-2005 à 15:17:17  profilanswer
 

non personne ne px voir ma connerie elle doit etre énorme et je la voie meme pas !!!

n°1083309
matafan
Posté le 14-05-2005 à 17:07:00  profilanswer
 

La question ne s'adressait pas à moi donc je n'ai pas répondu, mais c'est "my $val = $FCS_file[2];".

n°1084068
mc40
Posté le 15-05-2005 à 12:42:51  profilanswer
 

Alors donc comme tu me dis j'ai changer ça :
#! /usr/bin/perl
 
use strict;
my $val;
my $vall;
my @FCS_file;
my @FCS_mesure=(0,0,109,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
my $file = 'FCS_buffer.txt';
 
open(FIC,$file) or die;
@FCS_file = <FIC>;
close(FIC);
 
print "FCS_file  = @FCS_file\nFCS_mesure= @FCS_mesure\n";
 
my $val = $FCS_file[2];
print "FCS_file[2] = $val\n";
 
my $vall = $FCS_mesure[2];
print "FCS_mesure[2] = $vall\n";
 
Mais le résultat est toujours le meme !!!
 
FCS_file  = 0 0 109 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
FCS_mesure= 0 0 109 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
FCS_file[2] =  
FCS_mesure[2] = 109
 
 
La franchement je vois pas !!!

n°1084085
mc40
Posté le 15-05-2005 à 13:05:25  profilanswer
 

Alors la je dream!!
 
si j'assigne le contenue du fichier a ma variable FCS_file et que je print toute la chaine ok ça print bien mais si je veux print une valeur dans la chaine ça marche pas!!!
mais si j'init ma var FCS_file directement dans le prog alors la ça marche !!!!!!

n°1085051
mc40
Posté le 16-05-2005 à 09:43:31  profilanswer
 

:pt1cable: :pt1cable: :pt1cable: .....

n°1085061
pospos
Posté le 16-05-2005 à 09:50:29  profilanswer
 

ca me parait bizare ton truc
deja en faisant @file = <FIC> tu devrait avoir des retour ligne à la fin de chaque element de ton tableau, donc ca devrait se voir dans ton print

n°1085063
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 16-05-2005 à 09:52:03  profilanswer
 

tu pourrais changer ton titre ? [:kiki]


---------------
J'ai un string dans l'array (Paris Hilton)
n°1085074
mc40
Posté le 16-05-2005 à 09:57:17  profilanswer
 

tu vx quoi comme titre?

n°1085076
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 16-05-2005 à 09:57:53  profilanswer
 

un truc qui veuille dire quelque chose


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le 16-05-2005 à 09:57:53  profilanswer
 

n°1085079
mc40
Posté le 16-05-2005 à 10:00:31  profilanswer
 

Et la c'est mieux ? ;)


Message édité par mc40 le 16-05-2005 à 10:00:54
n°1085083
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 16-05-2005 à 10:03:17  profilanswer
 

ben voilà \o/


---------------
J'ai un string dans l'array (Paris Hilton)
n°1085094
Elmoricq
Modérateur
Posté le 16-05-2005 à 10:08:54  profilanswer
 

Dans ton fichier, tout est stocké sur une seule ligne.
 
Par conséquent, $FCS_file[2] n'existe pas.
Tu peux contrôler en imprimant la valeur de scalar(@FCS_file), pour voir.
 
Il faut utiliser une ligne du type :

Code :
  1. my @buffer = split /\s/, (join '', @FCS_file);


 
 
Et, par pitié, utilise les balises [cpp][/cpp] pour rendre ton code lisible.


Message édité par Elmoricq le 16-05-2005 à 10:09:45
n°1085099
mc40
Posté le 16-05-2005 à 10:11:01  profilanswer
 

Bon mise a part mon titre tu voie pas une solution!!! J'ai due oublier un truc a la c** encore mais je voie vraiment pas!! quand je print la chaine entière qui vient de mon fichier c'est ok je voie bien toute la chaine mais quand je vx afficher une valeur de la chaine en particulier et bien je n'arrive jamais a l'afficher a l'ecran!!
 
Mais bon moi a la base je vx juste comparer chaque rang des deux chaines:
le rang 0  de la chaine 1 est-il plus grand que le meme rang de la chaine 2.
J'ai bien lu le poste qui plus bas mais j'ai rien compris!!

n°1085103
mc40
Posté le 16-05-2005 à 10:12:54  profilanswer
 

ok on en apprend tout les jours je vais tester ça de suite!!

n°1085201
mc40
Posté le 16-05-2005 à 11:19:06  profilanswer
 

bon en effet c'est GOOD ta solution!
Donc je récapitule mon problème:
 
1=> je met dans un fichier le contenue d'une chaine. Scalar(@chaine) me retournait bien 50 donc 50 valeures.
2=> Apres j'ouvre mon fichier et j'affecte son contenue à @chaine2 si j'effectue un print de chaine2 j'avais bien ma chaine de type valeur espace valeur espace .... mais lorsque je faisais scalar(@chaine2) cela me retournai 1 donc pas bon!!!!
3=> donc la solution proposée par Elmoricq est( attention utilisation de cpp ;) lol:
 

Code :
  1. my @buffer = split /\s/, (join '', @FCS_file);


 
ce qui a pour effet de virer les espaces et d'en remttre d'autre donc apres mon scalar(@chaine2) je retrouve mes 50 valeures et la je px en choisir une parmis 50  
 
voila merci a tous!!!!


Message édité par mc40 le 16-05-2005 à 11:19:43
n°1085209
Elmoricq
Modérateur
Posté le 16-05-2005 à 11:22:46  profilanswer
 

mc40 a écrit :

1=> je met dans un fichier le contenue d'une chaine. Scalar(@chaine) me retournait bien 50 donc 50 valeures.
2=> Apres j'ouvre mon fichier et j'affecte son contenue à @chaine2 si j'effectue un print de chaine2 j'avais bien ma chaine de type valeur espace valeur espace .... mais lorsque je faisais scalar(@chaine2) cela me retournai 1 donc pas bon!!!!


 
Au lieu de t'embêter à tout ça, lorsque tu stockes dans le fichier, tu devrais plutôt stocker "join '\n', @chaine".
Comme ça, quand tu relis ton fichier, tu stockes directement 50 lignes, et pas une ligne de 50 valeurs. Et tu n'as plus besoin de bricoler (parce que, bon, le split/join c'est pas tres beau comme procédé, je trouve)

n°1085266
mc40
Posté le 16-05-2005 à 12:08:11  profilanswer
 

Citation :

pospos a dit: ca me parait bizare ton truc  
deja en faisant @file = <FIC> tu devrait avoir des retour ligne à la fin de chaque element de ton tableau, donc ca devrait se voir dans ton print


 
Excuse moi j'avais pas vu ta réponse!! ;)  
En effet je suis d'acord mais non il me met un espace entre mes valeures donc dans mon fichier je n'ai qu'une ligne enfin!!!
 
En suite Elmoricq j'ai en effet mis join "\n" mais à ma grande surprise il m'a pris mon \n comme des caractères et non comme un retour chario!!! alors que dans l'éditeur il me le met bien en rose donc il a reconnu mon \n je capte pas tout mais bon la ça marche!!

n°1085373
matafan
Posté le 16-05-2005 à 14:10:49  profilanswer
 

Parce que tu as mis '\n' et pas "\n".

n°1085394
Elmoricq
Modérateur
Posté le 16-05-2005 à 14:25:29  profilanswer
 

Hmm. Une erreur de ma part dans mon post.
Evidemment avec des apostrophes, ça ne peut pas marcher. Désolé.

n°1085613
mc40
Posté le 16-05-2005 à 16:05:16  profilanswer
 

ok je test mdr ;)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  [Perl] Problème de de print dans une chaine!!

 

Sujets relatifs
problème avec la fonction onload()Problème de syntaxe "Insert Into Values"
[C#] problème de compilationProblème avec "Visual Text Box"
probleme de restauration[QT]Probleme de thread...
probleme de configuration avec mail()tout peit probleme formulaire
probleme reseau batch[Java] Pb avec un PrintWriter.print() ?
Plus de sujets relatifs à : [Perl] Problème de de print dans une chaine!!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR