FileSystemObject : fic.write -> Invalid procedure call or argument

Résolu
kargoles Messages postés 11 Date d'inscription jeudi 8 octobre 2009 Statut Membre Dernière intervention 30 octobre 2009 - 27 oct. 2009 à 13:26
kargoles Messages postés 11 Date d'inscription jeudi 8 octobre 2009 Statut Membre Dernière intervention 30 octobre 2009 - 30 oct. 2009 à 12:20
Bonjour à tous.

Je vous expose mon problème :
Je récupère du texte depuis une fenêtre IE et tente de l'écrire dans un fichier (texte) Malheureusement cette écran comporte une partie "password" et ca me fait crasher mon code.

Je ne veux pas récupérer le password mais qu'il m'écrive tous le reste de la string sans crasher.

Mon code
 
Option Explicit
Dim Fichier_objet As New FileSystemObject

Function CreeRefEcran(ByVal IndiceEcran As String, ByVal EcranPrecedent As String) As Boolean
Dim Fic_EcranReg As TextStream
Dim Fic_EcranDollar As TextStream
Dim Nom_Fichier As String


Nom_Fichier = PATHREGTSCREEN & "" & IndiceEcran & "$.txt"
On Error GoTo ErreurCreate
Set Fic_EcranDollar = Fichier_objet.CreateTextFile(Nom_Fichier, False)


Fic_EcranDollar.Write (EcranPrecedent)
Fic_EcranDollar.Close
Sleep 2
CreeRefEcran = True
Exit Function

ErreurCreate:
Fic_Log.WriteLine ("Error " & Err)
Sleep 2
CreeRefEcran = False
Exit Function

End Function


contenue de EcranPrecedent = "Login : monLogin
Mot de passe : ??????
valider"

Err:
- Description : "Invalid procedure call or argument"
- HelpContext : 1000005
...
- Number : 5

Si quelqu'un a une idée pour virer les caractère qu'il ne supporte pas pour le fic.write() je suis preneur.

Merci d'avance

5 réponses

kargoles Messages postés 11 Date d'inscription jeudi 8 octobre 2009 Statut Membre Dernière intervention 30 octobre 2009
30 oct. 2009 à 12:20
bon je répond encore a ce poste parce que la solution proposé était bâtarde et modifiait la string...

la fonction write ne supporte pas les string contenant de l'unicode c'est pourquoi il y avait une erreur...

donc pour pallier au problème je parcours la string et remplace tous les chars unicode par des " "

    
For i = 1 To Len(strSrc)
        sChar = Mid(strSrc, i, 1)
        If (AscW(mid(strSrc,i,1)) > 255) Then
            Mid$(strSrc,i,1) = " "
        End If
   Next i
3
kargoles Messages postés 11 Date d'inscription jeudi 8 octobre 2009 Statut Membre Dernière intervention 30 octobre 2009
27 oct. 2009 à 14:12
bon j'ai trouvé après plusieurs essais...

en fait je fait un strConv et ca passe

Fic_EcranDollar.Write (StrConv(EcranPrecedent, vbProperCase, 0))
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 oct. 2009 à 14:17
Salut
Pas bien compris ce que tu cherches à faire, mais bon.
Sur quelle ligne, cette erreur ?
Surement parce que l'objet (à gauche du Write ou du WriteLine) n'est pas valide (fichier réellement ouvert ?)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
kargoles Messages postés 11 Date d'inscription jeudi 8 octobre 2009 Statut Membre Dernière intervention 30 octobre 2009
27 oct. 2009 à 14:28
Le fichier est créé donc il était bien ouvert.(enfin j'espère) Sur le même écran en ayant ajouter la fonction strConv je n'ai plus eu l'erreur

L'erreur se produisait sur Fic_EcranDollar.Write (EcranPrecedent) lorsque la string EcranPrecedent était récupérer sur un écran avec un password dedans. L'erreur était surement du à des caractères non supporter ou quelque chose du genre... je ne saurai apporter la réponse a cette question.

Le but de cette fonction est de faire un log visuel des écrans parcouru (récupérer le texte de la fenêtre et l'écrire dans un fichier texte)

Désolé d'avoir poster ma demande et trouver la solution quasi dans la foulé mais comme je cherchais depuis plusieurs heures je commençais a désespérer...

En tout cas Fic_EcranDollar.Write (StrConv(EcranPrecedent, vbProperCase, 0)) fonctionne
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
27 oct. 2009 à 16:31
Pas de problème.
Merci d'avoir partagé la solution, ça servira peut-être à un autre membre.
0
Rejoignez-nous