Fusionner des fichiers texte et les envoyer dans une base SQL - Perl - Programmation
Marsh Posté le 16-05-2006 à 22:47:11
t'es obligé de le faire en perl ?
en shell je trouve ça plus rapide à faire :
Code :
|
Bon c'est faisable en Perl mais je ne pense pas que ce sera plus simple
Marsh Posté le 16-05-2006 à 22:51:01
ah merde j'avais compris le débit uniquement sur la 1ère ligne du fichier
Marsh Posté le 16-05-2006 à 22:59:18
Code :
|
Marsh Posté le 17-05-2006 à 12:35:17
Code :
|
figure toi que j'ai essayé en shell DOS et que c'était interminable : >5 h pour 7000 fichier. Quand le fictemp dépasse que dizaine de Mo, ça devient dur
en Perl on m'a promis que ça passerais à qq dizaine de minute. J'en salive d'avance.
mais bon, j'essaierais le tiens quand même C'est quoi comme langage ?
merci
Marsh Posté le 16-05-2006 à 19:19:04
Bonjour,
bon, y'a une 2 heure, je ne connaissais pas Perl, donc un pt'tit peu d'indulgence...
j'ai environ 7000 fichiers de type texte dans un repertoire PANEL\ESS où se trouve egalement mon maggggnifique fichier de commande appelé fusion.pl. Enfin, quand il sera écrit....
Les nom de fichier sont du type : debit-date.pnn
Je voudrais :
1/ inscrire sur chaque ligne de chaque fichier le debit (extrait du nom du fichier)
2/ virer la premier ligne
3/ fusionner les 7000 fichiers ainsi modifiés (qq millions de lignes !)
4/ balancer le résultat dans un fichier fictemp sous SQL
bon, je commence comme ça :
#!\PANEL\ESS\
}
use strict;
my $file;
my $deb;
my $date;
my @res;
my @liste = glob('/PANEL/ESS/*.pnn');
foreach $file (@liste)
($deb,$date) = split(/-/,$_)
open(myfile,$file) or die "$file: $!" ;
while(<myfile> ){
push "$deb;$_;
}
après le push je sais pas trop...
qqun pour m'aiguiller ?
merci
a+
Message édité par Gilgamesh d'Uruk le 16-05-2006 à 19:20:35