Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Un problème (Space) avec les espaces

5 réponses
Avatar
Gérald
Bonsoir,

Je copie 1 fichiers parfaitement sain ligne par ligne afin de
recontituer un nouveau fichier.pl
Comme cela:
---------------------------------------------------------------------------=
---------
open (FILE,"E:/toto.com/cgi-local/Stock/Magasin.pl") || die "Can't Open
Magasin.pl $!\n";
@LINES=3D<FILE>;
close(FILE);
$SIZE=3D@LINES;

open (GUEST,">E:/toto.com/cgi-local/Stock/Magasin.pl") || die "Can't
Open Magasin.pl $!\n";

for ($i=3D0;$i<=3D$SIZE;$i++) {
$_=3D$LINES[$i];
if (<!--begin-->) {

print GUEST "@LINES";
}
close (GUEST);
}
---------------------------------------------------------------------------=
---------
Le fichier.pl se reconstitue mais =E0 chaque ligne les mots commencent
par un espace ce qui a pour effet notament de ne plus reconnaitre la
balise EOF par exemple
EOF
EOF
Comment pouvoir enlever cet espace au d=E9but de chaque ligne ? Quelle
faute ai-je commise?
Dans mon r=E9sultat cela commence toujourrs =E0 la 2 i=E8me ligne comme
=E7a:
---------------------------------------------------------------------------=
------------------
# Startup
my $use_GD; # set to 0 to fully disable use of GD
my $GDinstalled;
BEGIN {
$GDinstalled =3D eval { require GD };
if ($GDinstalled !=3D 0) {
$use_GD =3D 1;
}
else {$use_GD =3D 0;}
}

use CGI qw/:standard/;
use CGI::Carp qw(fatalsToBrowser);
#use strict;
print "Content-type: text/html\n\n";

my $template =3D $template_list;
etc..
---------------------------------------------------------------------------=
------------------

Merci beaucoup pour votre aide
Tr=E8s cordialement
G=E9rald

5 réponses

Avatar
tuser
Gérald wrote:
Bonsoir,

Je copie 1 fichiers parfaitement sain ligne par ligne afin de
recontituer un nouveau fichier.pl
Comme cela:
------------------------------------------------------------------------- -----------
open (FILE,"E:/toto.com/cgi-local/Stock/Magasin.pl") || die "Can't Open
Magasin.pl $!n";
@LINES=<FILE>;
close(FILE);
$SIZE=@LINES;

open (GUEST,">E:/toto.com/cgi-local/Stock/Magasin.pl") || die "Can't
Open Magasin.pl $!n";

for ($i=0;$i<=$SIZE;$i++) {
$_=$LINES[$i];
if (<!--begin-->) {

print GUEST "@LINES";
}
close (GUEST);
}
------------------------------------------------------------------------- -----------
Le fichier.pl se reconstitue mais à chaque ligne les mots commencent
par un espace ce qui a pour effet notament de ne plus reconnaitre la
balise EOF par exemple
EOF
EOF
Comment pouvoir enlever cet espace au début de chaque ligne ? Quelle
faute ai-je commise?
Dans mon résultat cela commence toujourrs à la 2 ième ligne


...parce que tu dis:
print GUEST "@LINES";


C'est une interpolation d'un array, donc Perl met un blanc (pour être
plus précis: la valeur de la variable $" / $LIST_SEPARATOR) entre
chaque ligne.
--> voir aussi: http://perl.enstimac.fr/DocFr/perlvar.html

Pour éviter ça, tu pourrais dire à la place:
print GUEST $_ for @LINES;


Avatar
Gérald
Merci, vraiment merci !
Je suis halluciné par le savoir que vous possédez
Je suis emerveillé que vous acceptiez de le transmettre
Je suis reconnaissant et content

Bien à vous
Gérald
P.S Maintenant mon script fonctionne bien sûr !


Gérald wrote:
Bonsoir,

Je copie 1 fichiers parfaitement sain ligne par ligne afin de
recontituer un nouveau fichier.pl
Comme cela:
----------------------------------------------------------------------- -------------
open (FILE,"E:/toto.com/cgi-local/Stock/Magasin.pl") || die "Can't Open
Magasin.pl $!n";
@LINES=<FILE>;
close(FILE);
$SIZE=@LINES;

open (GUEST,">E:/toto.com/cgi-local/Stock/Magasin.pl") || die "Can't
Open Magasin.pl $!n";

for ($i=0;$i<=$SIZE;$i++) {
$_=$LINES[$i];
if (<!--begin-->) {

print GUEST "@LINES";
}
close (GUEST);
}
----------------------------------------------------------------------- -------------
Le fichier.pl se reconstitue mais à chaque ligne les mots commencent
par un espace ce qui a pour effet notament de ne plus reconnaitre la
balise EOF par exemple
EOF
EOF
Comment pouvoir enlever cet espace au début de chaque ligne ? Quelle
faute ai-je commise?
Dans mon résultat cela commence toujourrs à la 2 ième ligne


...parce que tu dis:
print GUEST "@LINES";


C'est une interpolation d'un array, donc Perl met un blanc (pour être
plus précis: la valeur de la variable $" / $LIST_SEPARATOR) entre
chaque ligne.
--> voir aussi: http://perl.enstimac.fr/DocFr/perlvar.html

Pour éviter ça, tu pourrais dire à la place:
print GUEST $_ for @LINES;




Avatar
kurtz le pirate
In article ,
"Gérald" wrote:

Merci, vraiment merci !
Je suis halluciné par le savoir que vous possédez
Je suis emerveillé que vous acceptiez de le transmettre
Je suis reconnaissant et content


tu verras, il y a pas mal de personnes dans ce cas ici !

si, si... :)

--
klp

Avatar
DoMinix
Merci, vraiment merci !
Je suis halluciné par le savoir que vous possédez
Je suis emerveillé que vous acceptiez de le transmettre
Je suis reconnaissant et content



revient plus souvent, tu te fera plaisir :)

--
dominix

Avatar
Yann Coscoy
...parce que tu dis:
print GUEST "@LINES";


C'est une interpolation d'un array, donc Perl met un blanc (pour être
plus précis: la valeur de la variable $" / $LIST_SEPARATOR) entre
chaque ligne.
--> voir aussi: http://perl.enstimac.fr/DocFr/perlvar.html

Pour éviter ça, tu pourrais dire à la place:
print GUEST $_ for @LINES;



Je pense que

print GUEST @LINES;

doit marcher aussi.
Dans l'exemple initial, on commence par construire un gros string puis on
l'imprime. Dans les deux autres cas, on ne contruit pas de string
intermédiaire mais on imprime chaque ligne l'une après l'autre.

Yann Coscoy