Variable multilignes pour une insertion sql - Perl - Programmation
Marsh Posté le 21-06-2005 à 17:16:00
Quelque chose comme cela cela ne marcherai pas par hazard...
use strict;
my $var1 = undef;
my $var2 = undef;
my $var3 = undef;
#ouverture du fichier source
open(FSOURCE,"< $ARGV[0]" ) || die "Problème pour ouvrir $ARGV[0] !";
open(FRESULT, "> tuples.sql" ) || die "ouverture du fichier impossible !";
foreach my $ligne (<FSOURCE> ){
if ($ligne =~ /^>(.*)_(.*_.*)_(.*)_(.*)/){
if(defined($var3)){
print FRESULT "INSERT INTO Table VALUES ('".$var1."','".$var2."','".$var3."');\n";
}
$var3 = undef;
$var1 = $1.'_'.$2;
$var2 = $1;
# print "var1: $var1, var2: $var2\n";
}
if ($ligne =~ /^(\w+)/is){
$var3 .= $1;
# print "var3:$var3\n";
}
}
if(defined($var3)){
print FRESULT "INSERT INTO Table VALUES ('".$var1."','".$var2."','".$var3."');\n";
}
close FSOURCE;
close FRESULT;
Marsh Posté le 21-06-2005 à 15:42:02
Bonjour à tous.
J'essaie d'utiliser perl afin de créer un fichier d'insertion de tuples mysql.
Je pars pour cela d'un fichier qui est formaté de la sorte:
Après ouverture de ce fichier, j'arrive par des regex à recupérer les variables présentes sur la ligne commençant par >, par contre se qui suit cette ligne est elle même une variable:
=variable3
Au final, une fois avec recolté ces 3 variables, je veux les ecrire dans un autre fichier tuples.sql qui pourra par la suite être utilisé avec ma base.
voila mon code:
Pour var3 j'utilise les options "traiter la chaine comme une ligne simple" afin de récupérer toute les lignes entre les > , ceci pour asigner le resultat global à var3 mais ça ne marche pas.
Un peu d'aide please
Message édité par suomi le 21-06-2005 à 15:44:56