Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1388 connectés 

  FORUM HardWare.fr
  Programmation
  Perl

  Variable multilignes pour une insertion sql

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Variable multilignes pour une insertion sql

n°1126407
suomi
Posté le 21-06-2005 à 15:42:02  profilanswer
 

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 :
  1. >Variable1_Variable2\n
  2. BLABLABLABLABLABALABLABLA\n
  3. BALABLABLABLABALBALABALAB\n
  4. BLABBLBA..
  5. >Variable1_Varibale2\n
  6. SLEIZLZLDJZLJDKSLFKSLFPOA\n
  7. 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 :
  1. BLABLABLABLABLABALABLABLA\n
  2. BALABLABLABLABALBALABALAB\n
  3. 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 :
  1. Insert into base values ($variable1,$variable2, varibale3^);


 
voila mon code:
 

Code :
  1. #/usr/bin/perl -w
  2. use strict;
  3. my $var1 = undef;
  4. my $var2 = undef;
  5. my $var3 = undef;
  6. #ouverture du fichier source
  7. open(fsource,"$ARGV[0]" ) || die "Problème pour ouvrir $ARGV[0] !";
  8. open(fresult, ">tuples.sql" ) || die "ouverture du fichier impossible !";
  9. foreach my $ligne (<fsource> ){
  10.  if ($ligne =~ /^>(.*)_(.*_.*)_(.*)_(.*)/){
  11.   $var1 = $1.'_'.$2;
  12.  $var2 = $1;
  13.  print  $var1.",".$var2."\n";
  14. }
  15.  
  16.  if ($ligne =~ /^(\w+)/is){
  17.   $var3 = $1;
  18.      print $var3;}
  19.   }
  20. #  print fresult "INSERT INTO Table VALUES ('".$var1."','".$var2."','".$var3."');\n";
  21. 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  :jap:


Message édité par suomi le 21-06-2005 à 15:44:56
mood
Publicité
Posté le 21-06-2005 à 15:42:02  profilanswer
 

n°1126527
mandracke7​6
Posté le 21-06-2005 à 17:16:00  profilanswer
 

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;


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Perl

  Variable multilignes pour une insertion sql

 

Sujets relatifs
Probléme variable espaceBesoin d'aide avec les Variables d'Environnement en VBScript
[Vb express 2005] Insertion nouveau objetsProb transfert variable
Mettre dans un fichier (ou une variable) le résultat d'une génération[VB6] Chemin d'ccès avec variable [ résolu ]
Recuperer un Printf dans une variablesupprimer un element de tableau en variable de session
Problème de variable pour affichage de pagesProblème variable php (après installation avec apache)
Plus de sujets relatifs à : Variable multilignes pour une insertion sql


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR