Ecriture dans un fichier Texte

Résolu
bluetoote Messages postés 5 Date d'inscription lundi 30 avril 2007 Statut Membre Dernière intervention 1 mai 2007 - 1 mai 2007 à 17:23
Anguel Messages postés 31 Date d'inscription mardi 8 novembre 2005 Statut Membre Dernière intervention 15 septembre 2011 - 5 août 2008 à 21:22
Bonjour TLM,
Je suis entrain de faire une petite application sur VB6. Mon probleme c'est que j'ai pas pu déclarer l'expression monconfig comme variable global pour que chaque étape du progrmamme écris dans le meme fichier texte.
 (Mon programme tourne sauf que a chaque fois il ecrase les anciens resultat)

11 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
1 mai 2007 à 19:34
Je renviens après avoir fait une trsè longue réponse à un autre forumeur.

Si j'ai bien compris, tu as ce bout de code répété à plusieurs endroit de ton programme. Si à chaque fois il fait exactement la même chose, le mieux c'est de l'avoir qu'une seule fois dans une fonction. Ensuite dans ton programme il ne te reste plus qu'à appeler la fonction.

Ensuite, je vois que tu utilise l'objet FSO pour écrire ton fichier. Je ne sais pas si avec cette bestiole tu peux faire du mode Append. Persnellement j'utilise les methodes directes de VB6 qui consiste à ouvrir le fichier avec l'instruction Open, écrire avec Write.

Exemple :

Public Function EcrireRndFichier(valeur As String) As String
Dim fich As Integer
Dim result As Integer

fich = FreeFile
Open "c:\Score.txt" For Append As #fich

   Write #fich, valeur
   Randomize
   valeur = ""
   result = CInt(Int((8 * Rnd()) + 1))
   Write #fich, result
   EcrireRndFichier = result
   
Close fich

End Function<hr />
, ----
[code.aspx?ID=41455 By Renfield]
Utilisable ainsi par exemple :

Text1.Text = EcrireRndFichier(Text2.Text)

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
3
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
1 mai 2007 à 17:46
Salut,

C'est quoi au juste que tu veux faire, car je n'ai pas vraiment saisi ta demande...Tu sauvegarder les paramètre de ton prog(couleur, text, etat des boutons....) dans un fichier text ?

A+
Exploreur

 
0
bluetoote Messages postés 5 Date d'inscription lundi 30 avril 2007 Statut Membre Dernière intervention 1 mai 2007
1 mai 2007 à 17:58
Salut,


Le programme que j'ai fait consiste à générer des chiffres aléatoires et les stocker dans un fichier texte.
Le probleme c'est que je ne sais pas comment déclarer 'monconfig' comme variable globale pour que les rotines qui gener ces chiffre ecrivent dans le meme fichier et sans ecraser les anciens chiffres.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
1 mai 2007 à 18:00
ouvre ton fichier en mode Append, comme ça tu écrira à la fin aulieu de chaque fois le réinitialiser.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0

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

Posez votre question
bluetoote Messages postés 5 Date d'inscription lundi 30 avril 2007 Statut Membre Dernière intervention 1 mai 2007
1 mai 2007 à 18:11
Mr casy Comment je peux faire ça?
En plus j'ai pas compris votre en ecrivant "tu écrira à la fin"
Mon probleme c'est que je dois l'écrire à chaque il générer un chiffre.

Voilà ma routine:

Dim fsys   As Object
Dim monfic As Object




Set fsys = CreateObject("Scripting.FileSystemObject")
Set monfic = fsys.CreateTextFile("c:\Score.txt")

With monfic
.WriteLine Text2.Text
Randomize
Text1.Text = ""
Text2.Text = ""
Pause 0.2
A = CInt(Int((8 * Rnd()) + 1))
Text1.Text = A
.WriteLine A
Pause 2
Text1.Text = ""
End With
End If
End Sub

Le probleme c'est que j'en ai d autre routine qui font la meme chose et je ne veux pas ils écrivent dans un autre fichier. Et quand je veux recommence la boucle il ecrase les anciens fichier. C'est pour ça tous ce qui en rouge je dois le déclarer comme variable globale mais je ne sais pas comment??  
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
1 mai 2007 à 18:41
Rien pigé !
et encore moins le coup de la textbox dans laquelle on écrit juste pour le plaisir, apparemment !!!
0
bluetoote Messages postés 5 Date d'inscription lundi 30 avril 2007 Statut Membre Dernière intervention 1 mai 2007
1 mai 2007 à 18:46
Désolé jmmarques c'est juste mon premier programme sur VB. si tu veux m aider je peux t envoyer mon code et ça sert génereux de ta part  ! 
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
1 mai 2007 à 19:00
Bonjour bluenote,

Nous voudrions bien t'aide (les autres comme moi) !
Le problème principal est que nous ne voyons pas ce que tu cherches à faire exactement...

Si tu veux de l'aide, il va te falloir te montrer très clair et très précis sur ce point.
Expose le avec méthode et rigueur. Accompagne au besoin l'exposé de ce problème d'un petit exemple qui nous permettrait de voir clair dans ce que tu cherches à faire.
0
bluetoote Messages postés 5 Date d'inscription lundi 30 avril 2007 Statut Membre Dernière intervention 1 mai 2007
1 mai 2007 à 19:25
Voilà, c un petit jeu de mémoire.
Au premier lieu,  le programme doit afficher 3 chiffre(*).
Ensuite, le joueur doit saisir le premier chiffre affiche,
Apres le programme affiche un autre chiffre. l utilisateur doit rentrer le deuxième chiffre(*)....ainsi de suite......  c ça l idée du jeu.

Je veux que mon programme sauvegarde tous les chiffres affiche par le prog et qui sont rentrer par le joueur dans un fichier quelquonc
 Vous trouveriez en bas tous ce que j'ai programmé. et je crois tous ce qui en vert présent mon problemé que je dois le placer quelque part !!:

Private Sub Form_Load()
Dim fsys   As Object
Dim monfic As Object



Set fsys = CreateObject("Scripting.FileSystemObject")
Set monfic = fsys.CreateTextFile("c:\Score.txt")



With monfic
Randomize
Form1.Show
Text1.Text = ""
Pause 0.5
A = CInt(Int((8 * Rnd()) + 1))
Text1.Text = A
.WriteLine A
Pause 2
Text1.Text = ""
Pause 0.2
A = CInt(Int((8 * Rnd()) + 1))
Text1.Text = A
.WriteLine A
Pause 2
Text1.Text = ""
Pause 0.2
A = CInt(Int((8 * Rnd()) + 1))
Text1.Text = A
.WriteLine A
Pause 2
End With
Text1.Text = ""
End Sub
*****************************
Private Sub Text2_KeyPress(KeyAscii As Integer)



If KeyAscii = vbKeyReturn Then

Dim fsys   As Object
Dim monfic As Object




Set fsys = CreateObject("Scripting.FileSystemObject")
Set monfic = fsys.CreateTextFile("c:\Score.txt")

With monfic
.WriteLine Text2.Text
Randomize
Text1.Text = ""
Text2.Text = ""
Pause 0.2
A = CInt(Int((8 * Rnd()) + 1))
Text1.Text = A
.WriteLine A
Pause 2
Text1.Text = ""
End With
End If
End Sub
0
loubansky Messages postés 2 Date d'inscription dimanche 13 janvier 2008 Statut Membre Dernière intervention 29 juin 2008
29 juin 2008 à 21:30
je veux savoir comment lire, modifier, et suprimer des enregistrements dans un fichier .txt en vb.net. j'utilise sharpdevelop 2.2 .......... merci de vos aides
0
Anguel Messages postés 31 Date d'inscription mardi 8 novembre 2005 Statut Membre Dernière intervention 15 septembre 2011
5 août 2008 à 21:22
Bonjour  Loubansky je crois que cest ca se que tu cherche :

Public Sub AjoutValeurs(ByVal Val1 As Integer, ByVal Val2 As String, ByVal strChemFich As String)


   ' Ici Val1 est le Numero d'Enrigestremment et Val2 est l'enregistrement (l'information a ecrire)
   ' strChemFich est le chemin d'acces dans le fichier pe a utiliser :
   ' AjoutValeurs (X,Y, "C:\Documents and Settings\Administrateur\Mes documents\ESSAI\monFile.txt")
        Dim F As Integer
       
       


        F = FreeFile() '1er numéro libre
        FileOpen(F, strChemFich, OpenMode.Append) 'ouvert en ajout
       
        Write(F, Val1, Val2)


        ' écrit dans le fichier dont le numéro est F
        ' avec write (contrairement à Print) chaque valeur est séparée par une virgule,
        ' le texte est entouré de guillemets, les dates sont entouré par des #


              
        FileClose(F)
    End Sub


 




    ' Line Input est conseillé pour lire ce qui est écrit avec Print
    ' Pour lire les données séparées par des virgules écrites avec Write, vous devez utiliser Input


    Public Sub LitValeurs(ByVal strChemFich As String)


    ' Ici on lit les valeurs precedement enregistré dans le fichier indiqué
    ' en utilisant  LitValeurs "C:\Documents and Settings\Administrateur\Mes documents\ESSAI\monFile.txt"
        Dim Val1 As Object, Val2 As String
        Dim F As Integer
       
        F = FreeFile() '1er numéro libre
        FileOpen(F, strChemFich, OpenMode.Input)
        While Not EOF(F)   ' Boucle jusqu'a la fin des toutes enregistrements
          


            Input(F, Val1) '  lire les numeros
            Input(F, Val2) '  lire les enregistrements


           
            If Val1 = X Then  ' Si Val1 est egal a le numero cherché ici X on affiche Y
                Y = Val2


              
                 MsgBox(Y)
            End If
            ' Lit chaque valeur de la ligne et les attribue aux variables correspondantes
        End While


        FileClose(F)
    End Sub

Si ca peu t'aider  je serai content.



Anguel
0
Rejoignez-nous