1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
| # Ouverture fichier 1
# -----------------------------------
unless( open(FSP,"<$Harg{Fichier 1}") ) {
$oDesc->log_error("Ouverture [$Harg{fichier 1}] impossible [$!]") ;
$retour = 2 ;
}
return( $retour ) if $retour != $SUCCESS ;
#open du 2e fichier
#------------------------------------
unless( open(FSP,"<$Harg{fichier 2}") ) {
$oDesc->log_error("Ouverture [$Harg{fichier 2}] impossible [$!]") ;
$retour = 2 ;
}
return( $retour ) if $retour != $SUCCESS ;
# Creation fichier resultat
# --------------------------
$fihier 3 = gensym() ;
unless( open( $fichier 3,">$Harg{fichier 3}") ) {
$oDesc->log_error("Creation [$Harg{fichier 3}] impossible [$!]") ;
$retour = 3 ;
}
return( $retour ) if $retour != $SUCCESS ;
# Balaie 1er fichier recu et recupere les valeurs dans un fichier de format pour créer une table de hachage
# -------------
$recup = $oDesc->get_champ( 1, 'valeur' ) ;
$recup 1 = $oDesc->get_champ( 1, 'valeur 1' ) ;
$Hmem{$recup} = $recup 1 ;
}
close(FSP) ;
$oDesc->log_info(": fin [$retour] (0=ok)");
# plus complique lecture du 2e fichier car il y a des controle M
{
local $\='' ?
$buf = <F>
}
@ligne = split /\r/, $buf;
# attention 1e ligne qui est fixe et ne doit pas être changée(entête)
print FNEW shift(@ligne), "\r" ;
foreach $lig (@ligne) {
$recup = substr($lig, valeur1, 15);
if (exists($Hmem{$recup}) ) {
print FNEW $lig, $Hmem{$recup}, "\r" ;
}
else {
ERREUR
}
}
close FNEW
close($fichier 1)
close($fichier 2) ;
} |
Partager