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:
Code :
- >Variable1_Variable2\n
- BLABLABLABLABLABALABLABLA\n
- BALABLABLABLABALBALABALAB\n
- BLABBLBA..
- >Variable1_Varibale2\n
- SLEIZLZLDJZLJDKSLFKSLFPOA\n
- AZODU...
|
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:
Code :
- BLABLABLABLABLABALABLABLA\n
- BALABLABLABLABALBALABALAB\n
- BLABBLBA..
|
=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.
Code :
- Insert into base values ($variable1,$variable2, varibale3^);
|
voila mon code:
Code :
- #/usr/bin/perl -w
- 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 =~ /^>(.*)_(.*_.*)_(.*)_(.*)/){
- $var1 = $1.'_'.$2;
- $var2 = $1;
- print $var1.",".$var2."\n";
- }
-
- if ($ligne =~ /^(\w+)/is){
- $var3 = $1;
- print $var3;}
- }
- # print fresult "INSERT INTO Table VALUES ('".$var1."','".$var2."','".$var3."');\n";
- close fsource;
|
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