j'ai un fichier CSV dont j'extrais les lignes afin de faire des
opérations sur les chiffres contenus.
Ex :
une ligne en entrée : 32;34;B0003;15;100
un premier regex pour éliminer les sauts de lignes $ligne =~ s/\s$//;
puis $ligne =~ /^\d+;\d+;\w+;(\d+);(\d+)$/
$valeur1 = $1;
$valeur2 = $2;
print "OK\n" if ($valeur1 < $valeur2);
Ne marche pas du tout, en revanche > marche tout le temps.
J'ai essayé de faire un cast avec int($1) et int($2) dans l'affectation
des valeurs mais rien n'y fait.
De plus, une valeur comme -100 n'est pas reconnue comme chiffre.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas George
"C. Tobini" wrote in message <41fbddc2$0$18851$:
une ligne en entrée : 32;34;B0003;15;100 un premier regex pour éliminer les sauts de lignes $ligne =~ s/s$//; puis $ligne =~ /^d+;d+;w+;(d+);(d+)$/ $valeur1 = $1; $valeur2 = $2; print "OKn" if ($valeur1 < $valeur2); Ne marche pas du tout, en revanche > marche tout le temps.
La première chose à faire aurait été de faire un print sur $valeur1 et $valeur2.
J'ai essayé de faire un cast avec int($1) et int($2) dans l'affectation des valeurs mais rien n'y fait.
Inutile, < est toujours une comparaison numérique en perl (sauf si une surcharge a été faite, mais c'est assez anecdotique).
De plus, une valeur comme -100 n'est pas reconnue comme chiffre.
« -100 » ne respecte pas l'expression rationnelle d+, de toute évidence.
"C. Tobini" wrote in message
<41fbddc2$0$18851$8fcfb975@news.wanadoo.fr>:
une ligne en entrée : 32;34;B0003;15;100
un premier regex pour éliminer les sauts de lignes $ligne =~ s/s$//;
puis $ligne =~ /^d+;d+;w+;(d+);(d+)$/
$valeur1 = $1;
$valeur2 = $2;
print "OKn" if ($valeur1 < $valeur2);
Ne marche pas du tout, en revanche > marche tout le temps.
La première chose à faire aurait été de faire un print sur $valeur1 et
$valeur2.
J'ai essayé de faire un cast avec int($1) et int($2) dans l'affectation
des valeurs mais rien n'y fait.
Inutile, < est toujours une comparaison numérique en perl (sauf si une
surcharge a été faite, mais c'est assez anecdotique).
De plus, une valeur comme -100 n'est pas reconnue comme chiffre.
« -100 » ne respecte pas l'expression rationnelle d+, de toute évidence.
une ligne en entrée : 32;34;B0003;15;100 un premier regex pour éliminer les sauts de lignes $ligne =~ s/s$//; puis $ligne =~ /^d+;d+;w+;(d+);(d+)$/ $valeur1 = $1; $valeur2 = $2; print "OKn" if ($valeur1 < $valeur2); Ne marche pas du tout, en revanche > marche tout le temps.
La première chose à faire aurait été de faire un print sur $valeur1 et $valeur2.
J'ai essayé de faire un cast avec int($1) et int($2) dans l'affectation des valeurs mais rien n'y fait.
Inutile, < est toujours une comparaison numérique en perl (sauf si une surcharge a été faite, mais c'est assez anecdotique).
De plus, une valeur comme -100 n'est pas reconnue comme chiffre.
« -100 » ne respecte pas l'expression rationnelle d+, de toute évidence.
atchoum
un premier regex pour éliminer les sauts de lignes $ligne =~ s/s$//; faire "chomp($ligne)"
puis $ligne =~ /^d+;d+;w+;(d+);(d+)$/ De plus, une valeur comme -100 n'est pas reconnue comme chiffre.
$ligne =~ /^d+;d+;w+;(-?d+);(-?d+)/
Merci si vous pouvez m'aider. Avec plaisir
Jean-Pierre
un premier regex pour éliminer les sauts de lignes $ligne =~ s/s$//;
faire "chomp($ligne)"
puis $ligne =~ /^d+;d+;w+;(d+);(d+)$/
De plus, une valeur comme -100 n'est pas reconnue comme chiffre.
un premier regex pour éliminer les sauts de lignes $ligne =~ s/s$//; faire "chomp($ligne)"
puis $ligne =~ /^d+;d+;w+;(d+);(d+)$/ De plus, une valeur comme -100 n'est pas reconnue comme chiffre.
$ligne =~ /^d+;d+;w+;(-?d+);(-?d+)/
Merci si vous pouvez m'aider. Avec plaisir
Jean-Pierre
C. Tobini
Bonjour Nicolas et merci de ta réponse,
Nicolas George wrote:
La première chose à faire aurait été de faire un print sur $valeur1 et $valeur2.
Je l'ai évidemment fait, et là les valeurs sont ok.
J'ai essayé de faire un cast avec int($1) et int($2) dans l'affectation des valeurs mais rien n'y fait. Inutile, < est toujours une comparaison numérique en perl (sauf si une
surcharge a été faite, mais c'est assez anecdotique).
Là je ne savais pas, merci.
De plus, une valeur comme -100 n'est pas reconnue comme chiffre. « -100 » ne respecte pas l'expression rationnelle d+, de toute évidence.
Ce n'est évidemment que lorsqu'on s'apperçoit que ça ne marche pas, maintenant, je ne vois pas pourquoi il est évident que -100 n'est pas un nombre (?).
C. Tobini
Bonjour Nicolas et merci de ta réponse,
Nicolas George wrote:
La première chose à faire aurait été de faire un print sur $valeur1 et
$valeur2.
Je l'ai évidemment fait, et là les valeurs sont ok.
J'ai essayé de faire un cast avec int($1) et int($2) dans l'affectation
des valeurs mais rien n'y fait.
Inutile, < est toujours une comparaison numérique en perl (sauf si une
surcharge a été faite, mais c'est assez anecdotique).
Là je ne savais pas, merci.
De plus, une valeur comme -100 n'est pas reconnue comme chiffre.
« -100 » ne respecte pas l'expression rationnelle d+, de toute évidence.
Ce n'est évidemment que lorsqu'on s'apperçoit que ça ne marche pas,
maintenant, je ne vois pas pourquoi il est évident que -100 n'est pas un
nombre (?).
La première chose à faire aurait été de faire un print sur $valeur1 et $valeur2.
Je l'ai évidemment fait, et là les valeurs sont ok.
J'ai essayé de faire un cast avec int($1) et int($2) dans l'affectation des valeurs mais rien n'y fait. Inutile, < est toujours une comparaison numérique en perl (sauf si une
surcharge a été faite, mais c'est assez anecdotique).
Là je ne savais pas, merci.
De plus, une valeur comme -100 n'est pas reconnue comme chiffre. « -100 » ne respecte pas l'expression rationnelle d+, de toute évidence.
Ce n'est évidemment que lorsqu'on s'apperçoit que ça ne marche pas, maintenant, je ne vois pas pourquoi il est évident que -100 n'est pas un nombre (?).
C. Tobini
C. Tobini
A tes souhaits :-) et merci de ta réponse,
atchoum wrote:
faire "chomp($ligne)"
Je bosse aussi sous Cygwin et le chomp a tendance à ne pas marcher certaines fois.
$ligne =~ /^d+;d+;w+;(-?d+);(-?d+)/
Merci ça marche nickel !
A +
C. Tobini
A tes souhaits :-) et merci de ta réponse,
atchoum wrote:
faire "chomp($ligne)"
Je bosse aussi sous Cygwin et le chomp a tendance à ne pas marcher
certaines fois.
Je bosse aussi sous Cygwin et le chomp a tendance à ne pas marcher certaines fois.
$ligne =~ /^d+;d+;w+;(-?d+);(-?d+)/
Merci ça marche nickel !
A +
C. Tobini
Nicolas George
"C. Tobini" wrote in message <41fcf401$0$18855$:
Ce n'est évidemment que lorsqu'on s'apperçoit que ça ne marche pas, maintenant, je ne vois pas pourquoi il est évident que -100 n'est pas un nombre (?).
C'est évident que « - » n'est pas un chiffre.
"C. Tobini" wrote in message
<41fcf401$0$18855$8fcfb975@news.wanadoo.fr>:
Ce n'est évidemment que lorsqu'on s'apperçoit que ça ne marche pas,
maintenant, je ne vois pas pourquoi il est évident que -100 n'est pas un
nombre (?).
Ce n'est évidemment que lorsqu'on s'apperçoit que ça ne marche pas, maintenant, je ne vois pas pourquoi il est évident que -100 n'est pas un nombre (?).
C'est évident que « - » n'est pas un chiffre.
C. Tobini
Nicolas George wrote:
C'est évident que « - » n'est pas un chiffre.
Bon, je suis d'accord :-)
Mais puisqu'on est dans de l'interpolation, pourquoi - et suivi de d+ ne serait pas un nombre négatif ?
C. Tobini
PS : discussion de comptoir :-)
Nicolas George wrote:
C'est évident que « - » n'est pas un chiffre.
Bon, je suis d'accord :-)
Mais puisqu'on est dans de l'interpolation, pourquoi - et suivi de d+
ne serait pas un nombre négatif ?