Supprimer des fichers

rieuxg Messages postés 27 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 28 avril 2009 - 12 oct. 2005 à 11:34
rieuxg Messages postés 27 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 28 avril 2009 - 13 oct. 2005 à 08:37
Bonjour



J'ai fais un programme d'archivage et d'envoi de mail et la dernière fonction
archive les .CSV et après les avoir archivés je les supprime.

Je passe le nom des .CSV dans un table tableau ainsi ils sont tous traités d'un
seul coup. Il y a 2 répertoires possibles BP et BL d'ou la présence d'un
second tableau dans ma fonction qui donne le type et donc le chemin d'accès.
Mon problème est que je n'arrive jamais a supprimer le dernier ficher présent.
Je ne peux pas faire une autre fonction qui supprimerai tous les CSV restants
car mon programme tourne en permanence et peut être alimente en CSV en cour de
fonction. Donc il se pourrait que, avec cette hypothétique fonction je supprime
des fichiers qui n'ont pas encore étaient traites.

Je vous mets le code au cas ou vous en auriez besoin et merci d'avance.



Pour explication:

- TableauNomCSV contient le nom de tous les fichers CSV

- TableauTypeCSV contient le type de tous les fichiers CSV

Les 2 tableaux sont synchronisés.




'--------------------------------------------------------------------

'Archivage CSV-------------------------------------------------------

'--------------------------------------------------------------------



Function ArchivageCSV(TableauNomCSV, TableauTypeCSV)



Dim fso, FichierDestination, FichierSource

Const ForAppending = 8



Set fso = CreateObject("Scripting.FileSystemObject")



cpt = 0



Do While TableauNomCSV(cpt) <> ""

If TableauTypeCSV(cpt) = "BP" Then

On Error Resume Next

Set FichierDestination = fso.OpenTextFile(folderBPArrive & "BP FRD.CSV")

If err.number <> 0 then

Set FichierSource = fso.GetFile(folderBP & TableauNomCSV(cpt))

On Error Resume Next

FichierSource.Move(folderBPArrive & "BP FRD.CSV")

If err.number <> 0 then

Exit Function

End If



Else

Set FichierSource = fso.OpenTextFile(folderBP & TableauNomCSV(cpt))

FichierSource.SkipLine

Texte = FichierSource.ReadAll



Set FichierDestination = fso.GetFile(folderBPArrive & "BP FRD.CSV")

Set
FichierDestination = FichierDestination.OpenAsTextStream(ForAppending)

FichierDestination.Write Texte



Set FichierSource = fso.GetFile(folderBP & TableauNomCSV(cpt))

FichierSource.Delete

End If

Else

On Error Resume Next

Set FichierDestination = fso.OpenTextFile(folderBLArrive & "BL FRD.CSV")

If err.number <> 0 then

Set FichierSource = fso.GetFile(folderBL & TableauNomCSV(cpt))

On Error Resume Next

FichierSource.Move(folderBLArrive & "BL FRD.CSV")

If err.number <> 0 then

Exit Function

End If



Else

Set FichierSource = fso.OpenTextFile(folderBL & TableauNomCSV(cpt))

FichierSource.SkipLine

Texte = FichierSource.ReadAll



Set FichierDestination = fso.GetFile(folderBLArrive & "BL FRD.CSV")

Set
FichierDestination = FichierDestination.OpenAsTextStream(ForAppending)

FichierDestination.Write Texte



Set FichierSource = fso.GetFile(folderBL & TableauNomCSV(cpt))

FichierSource.Delete

End If

End If

cpt = cpt + 1

Loop



End Function

2 réponses

aieeeuuuuu Messages postés 698 Date d'inscription jeudi 16 janvier 2003 Statut Membre Dernière intervention 20 mai 2011 3
12 oct. 2005 à 18:00
bonjour,

quelle es ton erreur lorsque tu essaie de supprimer le dernier fichier ?

es tu sur qu'il n'est pas encore ouvert par ton application ?

auquel cas il est normal que tu ne puisse pas le supprimer.
0
rieuxg Messages postés 27 Date d'inscription vendredi 22 juillet 2005 Statut Membre Dernière intervention 28 avril 2009
13 oct. 2005 à 08:37
Salut a toi [auteurdetail.aspx?ID=35535 aieeeuuuuu]



Et bien merci de me repondre. J'ai trouvé l'erreur hier soir
assez tard et en fait tu as raison j'avais oublié un fichier.close dans
mon programme. Maintenant tout marche bien.



Merci
0
Rejoignez-nous