IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

Fichier destination trouvé


Sujet :

VB 6 et antérieur

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Points : 56
    Points
    56
    Par défaut Fichier destination trouvé
    Bonjour

    Tous les 15 minutes, je copie un fichier local sur un serveur dans un répertoire sap puis dans un répertoire sauv (toujours sur le même serveur).

    De temps en temps , d’après mon fichier log la fonction plante sur le "si le fichier destination trouvé". La fonction croit que le fichier existe pourtant le fichier n'existe pas.

    Cette fonction as très bien marché depuis 2004. Mais depuis environs 1 mois elle plante. Le serveur a été changé. Mais ce qui me perturbe le plus "même sur un disque dur local au pc, elle fait la même erreur.

    Voici mon code source

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    Function iCopieFichier(FichierSource As String, FichierDestination As String, ModeCopie As Integer, Effacer As Boolean, sMessage As String) As Integer
        Dim source      As Integer  'handle fichier source
        Dim Dest        As Integer  'handle fichier destination
        Dim iErreur     As Integer  'code erreur retour
        Dim sTrace      As String   'trace intermediaire
        'Dim sMessage    As String   'message d'erreur
     
        On Error Resume Next
     
        Err = 0
        source = FreeFile
        sTrace = "open S"
        Open FichierSource For Input As #source
     
        'le fichier source existe
        If Err = 0 Then
            Call vAjouteLogBS("", "icopieFichier : Ligne 35 " & FichierDestination & " " & Err, "SAP", True)
            Dest = FreeFile
            sTrace = "open D"
            Open FichierDestination For Input As #Dest
     
            'fichier destination trouvé
            If Err = 0 Then
                Call vAjouteLogBS("", "icopieFichier : Ligne 42 " & FichierDestination & " " & Err, "SAP", True)
                sTrace = "close D"
                Close #Dest
                'on efface le fichier de destination
                If ModeCopie = KILL_PERMIS Then
                    Call vAjouteLogBS("", "icopieFichier : Ligne 47 " & FichierDestination & " " & Err, "SAP", True)
                    sTrace = "kill D"
                    Kill FichierDestination
                    If Err <> 0 Then
                        Call vAjouteLogBS("", "icopieFichier : Ligne 51 " & FichierDestination & " " & Err, "SAP", True)
                        iErreur = Err
                    End If
                Else
                    Call vAjouteLogBS("", "icopieFichier : Ligne 55 " & FichierDestination & " " & Err, "SAP", True)
                    iErreur = COPIE_AJOURNEE
                End If
            Else 'fichier destination pas trouvé
                Call vAjouteLogBS("", "icopieFichier : Ligne 59 " & FichierDestination & " " & Err, "SAP", True)
                sTrace = "close D"
                Close #Dest
                iErreur = 0
            End If
        Else
            iErreur = 0
            GoTo fin
        End If
     
        sTrace = "close S"
        Close #source
        Err = 0
     
        'sortie de la fonction si erreur
        If iErreur = 0 Then
            Call vAjouteLogBS("", "icopieFichier : Ligne 75 " & FichierDestination, "SAP", True)
            Err = 0
            sTrace = "fcopie"
            FileCopy FichierSource, FichierDestination
            If Err = 0 Then
                Call vAjouteLogBS("", "icopieFichier : Ligne 80 " & FichierDestination, "SAP", True)
                'on detruit le fichier source
                sTrace = "kill S"
                If Effacer = True Then
                        Kill FichierSource
                        Call vAjouteLogBS("", "icopieFichier : Kill fichier : " & FichierSource, "SAP", True)
                End If
            'Name FichierSource As FichierDestination
            'If Err <> 0 Then iErreur = Err
            Else
                Call vAjouteLogBS("", "icopieFichier : Ligne 90 " & FichierDestination, "SAP", True)
                iErreur = Err
                iErreur = 90
            End If
     
        End If
     
        'modif em du 26/05/98 pb aléatoire de copie
        If iErreur <> COPIE_AJOURNEE And iErreur <> 0 Then
            sMessage = "PB COPIE FICHIER " & Format$(iErreur) & " " & FichierSource & "/" & Format$(source) & " " & FichierDestination & "/" & Format$(Dest) & " : " & sTrace
            Call vAjouteLogBS("", "icopieFichier : Ligne 99 " & FichierDestination, "SAP", True)
            'Call vTraceDefautPC(sMessage, USER_LEVEL)
        End If
     
    fin:
        Err = 0
        'on retourne le code d'erreur
        iCopieFichier = iErreur
     
    End Function
    Peut-être je devrais utilisé ou procédure pour "si fichier destionation trouvé" !

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Points : 671
    Points
    671
    Par défaut
    Bonjour,

    Pouruoi ne pas utiliser:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Dim fso
    Set fso = CreateObject("Scripting.FileSystemObject")
     
    If fso.fileexists(FichierSource) Then
     
                                   ....
                                       Else
                                   ....
     
    End If
    Beaucoup plus simple

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    le 10 décembre 2013 j'ai ces modifications

    ajout d'une nouvelle fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    '---------------------
    '-----------------
     
    Public Function FichierExiste(ByVal Nom As String) As Boolean
    On Error Resume Next
        Dim attrib As Integer
     
        attrib = GetAttr(Nom)
        If (Err <> 0) Then
            FichierExiste = False
        Else
            If ((attrib And vbDirectory) = vbDirectory) Then
                FichierExiste = False
            Else
                FichierExiste = True
            End If
        End If
    End Function
    J'appelle cette fonction dans ma fonction copie

    Cela très bien marché jusqu'au 31 décembre. Après j'ai de nouveau des bugs

    Cette semaine je vais mettre en place la méthode de Iclic

    Mais je vais finir par croire que mon problème vint d'autre chose !!

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 89
    Points : 56
    Points
    56
    Par défaut
    je pense simplifier ma fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
     
    Function iCopieFichier_JML(FichierSource As String, FichierDestination As String, ModeCopie As Integer, Effacer As Boolean, sMessage As String) As Integer
     
        On Error Resume Next
        Dim fso
        Set fso = CreateObject("Scripting.fileSystemObject")
     
        iCopieFichier_JML = 9
        If fso.fileexists(FichierSource) Then   '*si fichier source existe alors on fait la copie
             iCopieFichier_JML  = fso.CopyFile(FichierSource, FichierDestination, true)     
       End If
     
    fin:
     
    End Function
    En cours de tests
    A Valider sur pluisieur semaine

  5. #5
    Membre éclairé
    Inscrit en
    Décembre 2007
    Messages
    512
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 512
    Points : 671
    Points
    671
    Par défaut
    Bonjour,

    Ce serait mieux de mettre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Function iCopieFichier_JML(FichierSource As String, FichierDestination As String, ModeCopie As Integer, Effacer As Boolean, sMessage As String) As Integer
     
        On Error Resume Next
        Dim fso
        Set fso = CreateObject("Scripting.fileSystemObject")
     
     '... 
       Set fso = Nothing
    End Function
    Je ne vois pas l'utilité du 'On Error...
    sauf d'empêcher de voir une éventuelle erreur dans la programmation.

Discussions similaires

  1. importation de données : fichier non trouvé
    Par sam01 dans le forum SQL Procédural
    Réponses: 5
    Dernier message: 18/01/2007, 14h38
  2. fichier non trouvé dans apache?
    Par darkbob dans le forum Web
    Réponses: 1
    Dernier message: 18/07/2006, 03h03
  3. Faire Choix du fichier destination methode GET grace a JS
    Par ahage4x4 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 14/06/2005, 15h26
  4. Création version client - fichiers non trouvés
    Par Pascal dans le forum WinDev
    Réponses: 7
    Dernier message: 03/12/2004, 11h34
  5. [Debutant][Install][VS]erreur sur fichier non trouvé.
    Par silvermoon dans le forum DirectX
    Réponses: 4
    Dernier message: 16/07/2004, 20h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo