| 12
 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