OVH Cloud OVH Cloud

Probleme d'ecriture sur un fichier

2 réponses
Avatar
Jean-Michel
Bonjour,

Lorsque j'essai d'ecire dans un fichier texte, voici l'erreur que j'ai :

L'entée dépasse la fin du fichier

Voici mon compte

Dim InputFichier As String
InputFichier = lblFichier.Caption
Open "D:\Visual Basic\temp\essai.txt" For Input As #i
Input #i, InputFichier
Debug.Print InputFichier

Sachant que lblFichier.Caption est un suite de caractere avec des retour à
la ligne !
Merci de me dire ce qu'il faut que je modifi dans mon code pour que ca
marche !

Merci !

2 réponses

Avatar
Zoury
Salut Jean-Michel! :O)

1. L'ouverture en mode Input permet la lecture et non l'écriture... il faut
comprendre Input pour le programme VB et non pour le fichier... ;O)
2. N'oublie pas de fermer ton fichier suite à l'écriture à l'aide de la
méthode Close().
3. Dans ton code la variable InputFichier ne sert à rien. Tu peux passe
lblFichier.Caption directement.
3. Quelle est la valeur de i et comment est-elle définie? Regarde mon
exemple et l'utilisation de la fonction FreeFile() si ce n'est pas déjà ce
que tu fais.

Maintenant pour que ton code fonctionne, tu dois ouvrir le fichier en mode
Output ou Binary. Étant donnée que tu as déjà tout le texte à écrire en ta
possesion, le mode Binary est plus rapide. Note que le fichier sera créer
automatiquement s'il n'existe pas et écrasé s'il existe..

Ex :
'***
Option Explicit

Private Sub Form_Load()
Call EcrireFichier("D:Visual Basictempessai.txt", lblFichier.Caption)
End Sub

Private Sub EcrireFichier(ByRef sFichier As String, ByRef sTexte As String)

Dim hFile As Long

hFile = FreeFile
Open sFichier For Binary As #hFile
Put #hFile, , sTexte
Close hFile

End Sub
'***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous
Avatar
Jean-Michel
Parfait, ca marche, merci pour cette fonction que je vais utiliser partout !

Jean-Michel

"Zoury" <yanick_lefebvre at hotmail dot com> a écrit dans le message news:

Salut Jean-Michel! :O)

1. L'ouverture en mode Input permet la lecture et non l'écriture... il


faut
comprendre Input pour le programme VB et non pour le fichier... ;O)
2. N'oublie pas de fermer ton fichier suite à l'écriture à l'aide de la
méthode Close().
3. Dans ton code la variable InputFichier ne sert à rien. Tu peux passe
lblFichier.Caption directement.
3. Quelle est la valeur de i et comment est-elle définie? Regarde mon
exemple et l'utilisation de la fonction FreeFile() si ce n'est pas déjà ce
que tu fais.

Maintenant pour que ton code fonctionne, tu dois ouvrir le fichier en mode
Output ou Binary. Étant donnée que tu as déjà tout le texte à écrire en ta
possesion, le mode Binary est plus rapide. Note que le fichier sera créer
automatiquement s'il n'existe pas et écrasé s'il existe..

Ex :
'***
Option Explicit

Private Sub Form_Load()
Call EcrireFichier("D:Visual Basictempessai.txt",


lblFichier.Caption)
End Sub

Private Sub EcrireFichier(ByRef sFichier As String, ByRef sTexte As


String)

Dim hFile As Long

hFile = FreeFile
Open sFichier For Binary As #hFile
Put #hFile, , sTexte
Close hFile

End Sub
'***

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

Merci de poster les réponses au groupe afin d'en faire profiter à tous