VB: enregistrer et manipuler un tableau

Médéstrac -  
 Médéstrac -
Bonjour

Je débute sous Visual Basic.
L'utilisateur doit pouvoir enregistrer les coordonnées d'un point sous la forme Nom, Abscisse, Ordonnée. (ex: Point1; 5; 6). Pour cela j'ai mis 3 textbox séparées.
Ensuite il doit pouvoir sélectionner deux points dans des listbox qui affichent uniquement le nom, et un label doit renvoyer la distance entre ces deux points.
J'aimerais que les points enregistrés restent en mémoire, pour ne pas avoir à les re-rentrer à chaque fois qu'on lance le logiciel. Par exemple le point (Origine; 0; 0) doit toujours rester.
Quelqu'un sait-il comment je dois m'y prendre?

2 réponses

  1. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Par exemple:

    Sub EnregistreCoord(ByVal nom As String, ByVal Point1 As Integer, ByVal Point2 As Integer) 
    Dim fp As Integer 
    Dim Fichier As String 
    
         fp = Freefile 
         Ficher = "C:\MonDossier\ini\Coord.ini" 
    
          On Error Resume Next 
          Open Fichier For Append As #fp 
          Print #fp, nom & ", " & Point1 & ", " Point2 
          Close #fp 
    
          If Err.Number <> 0 Then 
                MsgBox Err.Number & " : " & Err.Description, VbCritical,"ERREUR" 
                Exit Sub 
           Else 
                MsgBox "Les données ont été enregistrées." 
           End If 
    
    End Sub


    Ensuite, pour lire par exemple, on stocke les données en mémoire dans une structure

    Private Type TabCoord 
        nom As String 
        point1 As Integer 
        point2 As Integer 
    End Type 
    
    Public Tcoord() As TabCoord 
    Public ind As Long 
    
    
    Sub lireCoord() 
    Dim fp As Integer 
    Dim Fichier As String 
    Dim str As String 
    Dim tTab() 
    
         fp = FreeFile 
         Ficher = "C:\MonDossier\ini\Coord.ini" 
    
          On Error Resume Next 
          Open Fichier For Input As #fp 
          While Not EOF(fp) 
            Line Input #fp, str 
              tTab = Split(str, ",") 
              ReDim Preserve Tcoord(ind) 
              Tcoord(ind).nom = tTab(0) 
              Tcoord(ind).point1 = tTab(1) 
              Tcoord(ind).point2 = tTab(2) 
              ind = ind + 1 
            Wend 
            Close #fp 
             
            If Err.Number <> 0 Then 
                MsgBox Err.Number & " : " & Err.Description, VbCritical,"ERREUR 
                Exit Sub 
            Else 
                MsgBox "Les données ont été récupérées" 
            End If 
             
    
    End Sub 
    


    ;o)

    «Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
    Nicolas Boileau
    2
    1. Médéstrac
       
      Merci bien de ton aide!
      Je rencontre quelques problèmes:
      _tout d'abord sur {Open Fichier For Append As #fp }
      VB me dit trois erreurs:
      'Open' is not declared
      Method arguments must be enclosed in parentheses
      Comma, ')', or a valid expression continuation expected

      _ensuite à quoi servent les # devant fp? J'ai droit à un "expression expected" les concernant.

      Merci bien
      0
  2. Polux31 Messages postés 7219 Statut Membre 1 204
     
    Bonjour,

    Quand tu dis [VB], c'est du VBA sous Excel, Access ? du VB.NET ou simplement du VB6 ?

    De manière générale, le plus simple est d'enregistrer tes points dans un fichier texte et de recupérer les données du fichier au lancement de ton appli.

    ;o)
    0
    1. Médéstrac
       
      Désolé; je parlais de Visual Basic VB6.
      Comment fais-t-on pour enregistrer des points dans un fichier texte et les récupérer ensuite: c'est justement cela ma question!
      Merci de t'intéresser à mon problème.
      0