IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

vb6: Mettre les données d'un textbox sous un fichier de type txt


Sujet :

VB 6 et antérieur

  1. #1
    flav66
    Invité(e)
    Par défaut vb6: Mettre les données d'un textbox sous un fichier de type txt
    slt

    alors voila, j'ai un problème, j'ai 16 textbox dans mon form, jusque la rien de plus normal, j'ai un timer qui permet de modifier les données du textbox dans un intervalle de temps précis.La encore tout va bien.
    Le problème qui se pose est que je voudrais pouvoir inscrire ces données qui sont dans mes textbox sous un fichier txt.

    Par exemple, la premiere valeur s'inscrit sur la ligne 1, puis la deuxième valeur sur la ligne 2. Puis les valeurs se modifient grace au timer, puis j'inscrit les 2 nouvelles valeur sur la ligne 4 et 5 par exemple.

    Mais le soucis c'est que je ne sais pas combien de temps peut durer cette opération donc je ne peux pas définir à l'avance les lignes. C'est pour ca que j'ai pensé à utiliser une boucle. Mais mon programme ne fonctionne pas.

    Voici un bout de mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
     
     
    Private Sub Timer1_Timer()
    Dim j As Integer
    j = j + 1
    'Si vous voulez lire plusieurs ligne :
    Dim fileNumer As Integer
    FileNumber = FreeFile
    'Ouvre le fichier
    Open "c:\test.txt" For Output As #FileNumber
     
    'Déclare var(n + 5 * j)
    Dim Var(1 + 5 * j)
    Dim Var(2 + 5 * j)
    Dim Var(3 + 5 * j)
    Dim Var(4 + 5 * j)
    Dim Var(5 + 5 * j)
    Dim Var(6 + 5 * j)
    Dim Var(7 + 5 * j)
    Dim Var(8 + 5 * j)
    Dim Var(9 + 5 * j)
    Dim Var(10 + 5 * j)
    Dim Var(11 + 5 * j)
    Dim Var(12 + 5 * j)
    Dim Var(13 + 5 * j)
    Dim Var(14 + 5 * j)
    Dim Var(15 + 5 * j)
    Dim Var(16 + 5 * j)
     
    Var(1 + 5 * j) = Text4(0).Text
    Var(2 + 5 * j) = Text1(0).Text
    Var(3 + 5 * j) = Text2(0).Text
     
    Var(4 + 5 * j) = Text4(1).Text
    Var(5 + 5 * j) = Text1(1).Text
    Var(6 + 5 * j) = Text2(1).Text
     
    Var(7 + 5 * j) = Text4(2).Text
    Var(8 + 5 * j) = Text1(2).Text
    Var(9 + 5 * j) = Text2(2).Text
     
    Var(10 + 5 * j) = Text4(3).Text
    Var(11 + 5 * j) = Text1(3).Text
    Var(12 + 5 * j) = Text2(3).Text
     
    Var(13 + 5 * j) = Text3(0).Text
    Var(14 + 5 * j) = Text3(1).Text
    Var(15 + 5 * j) = Text3(2).Text
     
    Var(16 + 5 * j) = Text6.Text
     
    Print #FileNumber, Var(1 + 5 * j), Var(2 + 5 * j), Var(3 + 5 * j)
    Print #FileNumber, Var(4 + 5 * j), Var(5 + 5 * j), Var(6 + 5 * j)
    Print #FileNumber, Var(7 + 5 * j), Var(8 + 5 * j), Var(9 + 5 * j)
    Print #FileNumber, Var(10 + 5 * j), Var(11 + 5 * j), Var(12 + 5 * j)
    Print #FileNumber, Var(13 + 5 * j), Var(14 + 5 * j), Var(15 + 5 * j)
    Print #FileNumber, Var(16 + 5 * j)
    'Ferme le fichier test.txt
    Close #FileNumber
     
    Command2.Enabled = False
    StatusBar1.SimpleText = "Récupération en cours..."
    Dim Var As Integer
    Dim val As String, typ As String
    Dim Rapports(2) As Double
    données_récup = Récup.Récupération
    If données_récup(4)(0) <> 1 Then
        Command2.Enabled = True
        StatusBar1.SimpleText = "Erreur de communication à la commande n°" & données_récup(4)(0)
        Var = MsgBox(StatusBar1.SimpleText, vbOKOnly, "Erreur")
        Exit Sub
    End If
    For i = 0 To UBound(données_récup(0))
        Text1(i).Text = données_récup(0)(i) & " %"
        Select Case données_récup(1)(i)
            Case 0
                typ = "Aucun"
            Case 1
                typ = "Rebroyé"
            Case 2
                typ = "Naturel"
            Case 3
                typ = "Additif/Colorant"
        End Select
        Text4(i).Text = typ
        Text2(i).Text = données_récup(2)(i) & " gr"
    Next
    For i = 0 To UBound(données_récup(3))
        Text3(i).Text = données_récup(3)(i) & " %"
        Rapports(i) = données_récup(3)(i)
    Next
    If (Rapports(0) <> 0 And Rapports(1) <> 0 And Rapports(2) <> 0) Then
        val = masave.Sauvegarde(Rapports())
        If (val <> "OK") Then
            Var = MsgBox("Sauvegarde échouée: " & val, vbOKOnly, "Erreur")
            val = "Sauvegarde précédente échouée!"
          Else
            val = "Sauvegarde précédente réussie"
        End If
        StatusBar1.SimpleText = val
    End If
    Command2.Enabled = True
    End Sub

    ps: désolé si je m'explique, je suis nouveau ici...merci de votre compréhension

  2. #2
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Hello

    Ton code n'est pas tres clair
    On trouve par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     Dim j As Integer
      j = j + 1
    Si une variable est declarée a l'interieur d'une sub, cette variable est recrée a chaque exécution de la sub, donc J vaut toujours un, il faudrait utiliser Static J as Integer si tu veux que j garde sa valeur entre les différents apples de la sub
    Plus loin tu ecris ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Dim Var(1 + 5 * j)
    Dim Var(2 + 5 * j)
    Dim Var(3 + 5 * j)
    Dim Var(4 + 5 * j)
    Dim Var(5 + 5 * j)
    Dim Var(6 + 5 * j)
    Dim Var(7 + 5 * j)
    Dim Var(8 + 5 * j)
    Dim Var(9 + 5 * j)
    Dim Var(10 + 5 * j)
    Dim Var(11 + 5 * j)
    Dim Var(12 + 5 * j)
    Dim Var(13 + 5 * j)
    Dim Var(14 + 5 * j)
    Dim Var(15 + 5 * j)
    Dim Var(16 + 5 * j)
    Ca dénote une imcomprehension totale de l'utilisation des tableaux sous vb
    Ca m'etonnerais que vb accepte d'executer çà. Je pense que tu devrais lire un tuto sur vb, il y en a d'excellents sur ce site. ca va te prendre quelques heures peut être , mais considere les comme un investissement, ca va t'en faire gagner des millers que tu ne perdras pas en essayant n'importe quoi, jusqu'a ce que quelque chose marche
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  3. #3
    flav66
    Invité(e)
    Par défaut
    merci a toi pour ta réponse, je vais lire les tutos

  4. #4
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Un petit F1 sur le mot Array devrait pouvoir t'aider.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  5. #5
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    On pourais déjà bien simplifier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    Private Sub Timer1_Timer()
      Dim fileNumer As Integer
      FileNumber = FreeFile
      'Ouvre le fichier
      Open "c:\test.txt" For Output As #FileNumber
     
      Print #FileNumber, Text4(0).Text, Text1(0).Text, Text2(0).Text
      Print #FileNumber, Text4(1).Text, Text1(1).Text, Text2(1).Text
      Print #FileNumber, Text4(2).Text, Text1(2).Text, Text2(2).Text
      Print #FileNumber, Text4(3).Text, Text1(3).Text, Text2(3).Text
      Print #FileNumber, Text3(0).Text, Text3(1).Text, Text3(2).Text
      Print #FileNumber, Text6.Text
     
      'Ferme le fichier test.txt
      Close #FileNumber
     
      ....
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  6. #6
    flav66
    Invité(e)
    Par défaut
    merci
    ton code m'a donné une idée

    j'ai fait une petite application simple je pense, histoire de voir le résultat

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Command1_Click()
    Dim fileNumer As Integer
    FileNumber = FreeFile
     
    Open "c:\test.txt" For Output As #FileNumber
     
    Print FileNumber, text1.Text
    Print FileNumber, text2.Text
     
    Close #FileNumber
    End Sub
    mais le problème est que cela ne m'affiche rien dans mon fichier, le contenu s'inscrit directement sur mon form en haut a gauche, c'est a ne rien y comprendre.

  7. #7
    flav66
    Invité(e)
    Par défaut
    je suis dsl, je retire ce que j'ai dit au post précédent, cela est de ma faute, en regardant mon post une fois de plus, je me suis rendu compte que j'avais oublié deux #.
    Voila pourquoi l'erreur et l'incompréhension.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Private Sub Command1_Click()
    Dim fileNumer As Integer
    FileNumber = FreeFile
    
    Open "c:\test.txt" For Output As #FileNumber
    
    Print #FileNumber, text1.Text
    Print #FileNumber, text2.Text
    
    Close #FileNumber
    End Sub

  8. #8
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    La methode print mavar1,mavar2 s'aplique a la feuille en cours, Pour ecrire dans un fichier, il faut faire print #Nfich,Mvar

    Le dièse permet a vb de faire la diffèrence entre les deux print
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  9. #9
    Membre chevronné
    Avatar de sovo
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mars 2004
    Messages
    1 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2004
    Messages : 1 389
    Points : 1 788
    Points
    1 788
    Par défaut
    Et maintenant as tu toujours un probleme ?? la ca devrais aller je crois.
    "Toute question a une reponse. Et chaque reponse est une nouvelle question." Albert EINSTEIN

    En cas de Question resolu, n'oubliez pas

  10. #10
    flav66
    Invité(e)
    Par défaut
    merci pour tes précisions delbeke.

    Mais tout ceci est dans un bouton, maintenant si je veux mettre ceci dans un timer,comment puis je faire pour que ces données s'inscrivent les unes en dessous des autres a chaque passage du timer.
    Je ne sais pas si je suis très clair???^^

  11. #11
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Remplace For Output dans l'instruction Open par un For Append
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    'Open "c:\test.txt" For Output As #FileNumber
    Open "c:\test.txt" For Append As #FileNumber
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  12. #12
    flav66
    Invité(e)
    Par défaut
    Merci beaucoup c'est absolument parfait. Cela fonctionne parfaitement.
    Un grand merci a delbeke tout particulierement...

Discussions similaires

  1. Mettre les données d'une colonne d'un fichier Excel dans une ArrayList
    Par kortobi dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 05/09/2012, 19h40
  2. Mettre les données d'un formulaire dans un fichier texte
    Par superjordan dans le forum Langage
    Réponses: 1
    Dernier message: 30/03/2008, 16h35
  3. Réponses: 5
    Dernier message: 10/07/2007, 09h43
  4. Réponses: 4
    Dernier message: 27/03/2007, 09h49
  5. Réponses: 5
    Dernier message: 01/06/2006, 16h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo