FSO: comment tester la fermeture d'un TextStream

Résolu
maxxyme Messages postés 16 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 1 mai 2014 - 15 sept. 2006 à 15:10
maxxyme Messages postés 16 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 1 mai 2014 - 15 sept. 2006 à 17:40
Bonjour,

Petite question concernant l'utilisation de la méthode Close() pour l'objet TextStream du FSO : comment connaître l'état du TextStream...?
Je m'explique, voici le genre de code (simplifié) que je veux utiliser :
Dim oLogFile As TextStream, fso as New FileSystemObject
Set oLogFile = fso.OpenTextFile("C:\test.txt", ForReading)
' ... diverses opérations de lecture sur le fichier
Call oLogFile.Close
' ici oLogFile n'est plus utilisable...
' comment tester alors qu'il vient d'être fermé ?
' => un test avec Nothing ne donne rien, ni avec False, ni avec Null, ni avec Empty...!!!
Je suis perdu...

Merci d'avance !

2 réponses

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
15 sept. 2006 à 16:58
Salut,

En théorie, tu es plutôt bien placer pour savoir si ton fichier est fermé ou pas...

Sinon, tu peux éventuellement mettre un booléen à True quand tu ouvre ton fichier et à False quand tu le ferme. De cette manière, tu n'aurais qu'à tester le booléen pour savoir si ton fichier est fermé.

Tu peux aussi traiter ça avec une gestion d'erreur, mais c'est un peu lourd :

On Error Goto Fermé
'Le code suivant génère une erreur si le fichier est fermé.
Call oLogFile.AtEndOfLine

MsgBox 'Fichier ouvert'

Exit Sub 'Ou Function, ça dépend d'ou c'est

Fermé :

MsgBox "Fichier fermé"

@+
<hr size="2" width="100%" />Je suis en deuxième année en école d'ingénieur et passionné de développement logiciel. Je cherche un stage en entreprise sur paris ou Clermont de début avril à fin juillet 2007. Mes langages de prédilection sont
3
maxxyme Messages postés 16 Date d'inscription lundi 15 décembre 2003 Statut Membre Dernière intervention 1 mai 2014
15 sept. 2006 à 17:40
En théorie uniquement... car quand la variable pointant vers le TextStream est passée comme paramètre d'une méthode ou fonction... l'utilisation d'un booléen pour suivre l'état (ouvert ou fermé) du fichier est pour le moins plus complexe et malhabile.

Par contre effectivement, la gestion d'erreur pourrait permettre de gérer ça "correctement" (enfin presque... ;-)
C'est juste qu'il est dommage de ne pas retrouver sur ce genre d'objet un membre du type de "State" comme sur les Recordset de bases de données).
0
Rejoignez-nous