La lecture d'un fichier!! [Résolu]

Signaler
Messages postés
33
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
-
Messages postés
33
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
-
salut à tous!
svp je dois créer un programme à partir duquel on peut créer, ouvrir,  et lire un fichier.
voilà j'ai tous fait mais le code ne marche pas bien je sais pas pourquoi?
j'arrive à créer et écrire dans le fichier mais j'arrive pas à le lire et le fermer. pourtant voilà le code j'aimerais que vous me le courrigiez! et merci à priori!!
==================================
Dim fichier As String
Dim ligne As String

____________________________________________________
Private Sub Ecrire_Click()

ligne = Dat & " " & Combo1 & " " & Text1.Text & " " & Text2.Text & " " & " vous souhaite bonne chance!!"

'Write #1, ligne
Print #1, ligne

End Sub
___________________________________________________
Private Sub Fermer_Click()
Close #1
End Sub
____________________________________________
Private Sub Form_Load()
With Combo1
    .AddItem "Mademoiselle"
    .AddItem "Madame"
    .AddItem "Monsieur"
End With
End Sub
______________________________________________________
Private Sub Lire_Click()
'Line Input #1, ligne
'Open "fichier" For Input As #1
Dim i As Double
Do While Not EOF(1)     'Vérifie si la fin du fichier est atteinte.
    Line Input #1, fichier  'Lit les lignes de données.
 
Loop

End Sub
______________________________________________________
Private Sub Ouvrir_Click()
fichier = InputBox("saisir le nom du fichier", "fichier")
'Open fichier For Input As #1
'Open fichier For Output As #1
Open fichier For Append As #1
End Sub
_________________________________________________________
Private Sub Quitter_Click()
End
End Sub
==================================
merci 2 ème fois

11 réponses

Messages postés
33
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
2
bonjour !
merci les ami(e)s pour votre aide grace à vous j'ai pu comprendre et coder mon programme,maintenant le voilà complet :
=======================================================
Dim fichier As String
Dim ligne As String
_________________________________________________________
Private Sub Ecrire_Click()
Dim dat1 As Date
dat1 = 9 - 5 - 2008
ligne = "le" & " " & dat1 & " " & Combo1 & " " & Text1.Text & " " & Text2.Text & " " & " vous souhaite bonne chance!!"

'Write #1, ligne
Print #1, ligne

End Sub
____________________________________________________
Private Sub Fermer_Click()
Close #1
MsgBox ("le fichier " & " " & fichier & " " & "est fermé!! ")
End Sub
______________________________________________________
Private Sub Form_Load()
With Combo1
    .AddItem "Mademoiselle"
    .AddItem "Madame"
    .AddItem "Monsieur"
End With
End Sub
____________________________________________________
Private Sub Lire_Click()

Dim i As Double
Do While Not EOF(1)     'Vérifie si la fin du fichier est atteinte.
    Line Input #1, ligne  'Lit les lignes de données.
  i = i + 1
Loop
  MsgBox (ligne)

End Sub
_________________________________________________________
Private Sub Ouvrir_Click()

fichier = InputBox("saisir le nom du fichier", "fichier")

If Option1.Value = True Then
     Open fichier For Input As #1   'ouvrire pour lecture
ElseIf Option2.Value = True Then
     Open fichier For Output As #1  'ouvrir pour écriture
ElseIf Option3.Value = True Then
     Open fichier For Append As #1   'ouvrir pour lecture et écriture
End If

End Sub
_________________________________________________________
Private Sub Quitter_Click()
End
End Sub
=========================================================
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut,

(et de rien 3 fois)

Voici un bout de code, qui devrait déjà t'aiguiller pas mal :

Const MyFile as string =  "C:\MonFichier.txt"
private FF as integer, sContenu as string

Sub OuvrirPourLecture(byval sChemin as string)

FF = FreeFile
Open sChemin For Input As #FF
    sContenu = Input$(LOF(FF), #FF)
close #FF
MsgBox sContenu

End Sub

Sub OuvrirPourEcriture(byval sChemin as string, byval ToutEffacer As Boolean)

FF = FreeFile
if ToutEffacer then
    Open sChemin For Output As #FF
else
    Open sChemin For Append As #FF
end if

Print #FF, "Chouette, j'écris des carractères dans un fichier texte
!"
close #FF

End Sub

' Utilisation
:
call OuvrirPourLecture(MyFile)
call OuvrirPourEcriture(MyFile, True)
call OuvrirPourEcriture(MyFile, False)
~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small><small> </small>

@++

<hr size ="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA/STRON
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
Salut
Beaucoup d'hésitations, je vois (lignes en commentaires)
Comme tu l'auras lu dans l'aide, la méthode "Append" ouvre un fichier en écriture et se positionne tout de suite à la fin du fichier, de sorte que la prochaine écriture se fasse à la suite des précédentes données.
Maintenant, si tu veux lire toutes les lignes, il va falloir refermer puis réouvrir le fichier en mode "Input" cette fois, lire les lignes, puis refermer le fichier et le réouvrir en "Append" pour être prèt à une nouvelle écriture.
+
Ta méthode de lecture est bizarre : Attention
Tu lis bien chaque ligne et leur contenu arrive dans ta variable "fichier" --> Lors d'une prochaine réouverture, le nom du fichier aura disparu !
Tu as dimensionné "Ligne" : Il faudrait s'en servir dans le "Line Input" si tu ne veux pas écraser le nom du fichier saisi lors du "Ouvrir_Click"

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

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
salut Jack,

on voit que tes admins pour corriger tes messages 
En flag, un message que tu as posté 7 secondes avant moi se retrouve après !

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA/STRON
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
74
lol, oui, j'avais oublié de parler de la variable "fichier" dans la lecture des lignes.
Honte sur moi : on demande aux membres de se relire avant de poster, et je ne le fais pas.
Pas bien !
Messages postés
33
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
2
pour mon code il s'agit de créer un fichier chaque fois qu'on clic sur le botton de commande ouvrir celui là sera créé dans le même dossier que le projet et la form ce que je veux c'est d'ouvrir le fichier créé précedemment avec le botton lire! pour ton code [auteur/MORTALINO/647037.aspx mortalino] je le trouve difficile à comprendre car je suis débutante !
ainsi voilà la partie qui m'interesse actuellement!
========
Private Sub Lire_Click()
'Line Input #1, ligne
'Open "fichier" For Input As #1
Dim i As Double
Do While Not EOF(1)     'Vérifie si la fin du fichier est atteinte.
    Line Input #1, fichier  'Lit les lignes de données.
 
Loop

End Sub

_______________
pour toi [auteur/JACK/2204.aspx jack] les ligne en commentair je les ai essayé mais ça marche pas comme même!

mais merci de toute façon!
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
un exemple tout fait, t'as juste à changer la valeur de



MyFile



:








Const 
MyFile 
as string 

"C:\MonFichier.txt"


private 
FF 
as integer
, sContenu 
as string




function 
OuvrirPourLecture(
byval 
sChemin 
as string
)
as string




FF = 
FreeFile


Open 
sChemin 
For Input As 
#FF

    OuvrirPourLecture = Input$(LOF(FF), #FF)
close #FF

End Sub

Private Sub Lire_Click()
sContenu = OuvrirPourLecture(MyFile)
msgbox sContenu
end sub

~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA/STRON
Messages postés
33
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
2
bonjour j'ai unepetite question!
c'est: est ce que la lecture ce fait seulement par un truc sempbleble au msgbox quiaffiche le contenue du fichier ou il s'agit de l'ouverture du fichier lui même et lire son contenu?
si c'est le premier cas ton prgramme marche bien sinon c'est pas ce que je cherche!!
et merci!!
et désolée pour le dérangement!
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Le MsgBox c'est pour te montrer que le contenu du fichier se trouve dans la variable sContenu.
A toi maintenant de faire ce que tu veux des données du fichier (donc de sContenu)

Autre exemple, si tu veux mettre le texte du fichier dans un textbox :
NomDuTextbox.Text = sContenu

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA/STRON
Messages postés
33
Date d'inscription
samedi 16 février 2008
Statut
Membre
Dernière intervention
11 mai 2011
2
bonjour!
merci beaucoup! et désolée encore une fois pour le dérangement mai je vois que tu n'as pas bien compris ma question!
ce que je veu éxactement c'est ouvrir le fichier que j'ai créé par la commande ouvrir en fait par le bottoon de commande ouvrir je veux qu'il s'ouvre pas lsavoir seulement qu'est ce qui est écrit là dedant okey??
svp j'ai cet exécice comme examen demin aprés midi
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
AAhhh, fallait le dire plutôt

regarde ce snippet de PCPT,

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As
Long
Public Sub StartProcess(ByVal sFile As String, Optional ByVal sParameters As String = vbNullString)
    ShellExecute 0&, "open", sFile, sParameters, vbNullString, 1&
End Sub
'
'
'  =======
' EXEMPLE
'  =======
'
Private Sub Form_Load()
    StartProcess "C:\mon_image.jpg" '<- ouvre l'image
avec ACDSEE par exemple
    StartProcess "N:\Mon  dossier"   '<- ouvre
l'explorateur à cette arborescence
    StartProcess "D:\fichier.pdf"   '<- ouvre le
fichier avec Acrobat Reader
    StartProcess "C:\Client.exe"    '<- lance le
programme
End Sub
~
<small>[code.aspx?ID=39466 Mortalino] ~
Colorisation automatique</small>

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA/STRON