Besoin d'un expert VB

Rackmaninov Messages postés 1 Date d'inscription vendredi 7 mai 2010 Statut Membre Dernière intervention 8 mai 2010 - 8 mai 2010 à 15:05
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 8 mai 2010 à 19:02
Bonjour à tous ,

En tant qu'étudiant en maths appliquées , je ne suis un novice parmi les novices en programmation .
Voici mon problème :

Je travaille sur un programme Visual Basic reproduisant le célèbre "jeu de la vie" de Horton Conway .
Le programme en lui-même est terminé , mais je désirerais y ajouter une fonction qui permettrait de sauvegarder une grille existante d'une part,
et de charger les grilles sauvegardées d'autre part . J'ai trouvé sur ce même site - une mine d'or , formidablement administrée, au passage -
un programme qui ressemble au mien et qui propose ces deux fonctions . Problème , mes connaissances en VB sont insuffisantes pour déchiffrer la majeure
partie du code . Je sollicite donc votre expertise pour m'aider à comprendre ce qui est fait à chaque étape dans les deux portions de code suivantes :


1. La sauvegarde d'une grille :

Private Sub Command6_Click()
On Error GoTo ErrHand
    Dim i As Integer, j As Integer
    Dim Ligne As String
    
    Dim Fle As Integer
    
    CommonDialog1.FileName = ""
    CommonDialog1.InitDir = App.Path & "\save"
    CommonDialog1.Filter = "Sauvegardes (*.svi)|*.svi"
    CommonDialog1.ShowSave
 
    If CommonDialog1.FileName <> "" Then
        Fle = FreeFile
        
        Open CommonDialog1.FileName For Output As #Fle
        
        'on sauvegarde le fichier
        For i = 1 To 50
            Ligne = ""
            For j = 1 To 50
                If Univers(i, j) Then Ligne Ligne & "T" Else Ligne Ligne & "F"
            Next j
            Print #Fle, Ligne
        Next i
        Close #Fle
        MsgBox "C'est fait !"
    End If
    
    Exit Sub

ErrHand:
    MsgBox "Une erreur est survenue !"
    Affichage
End Sub


2.Le chargement d'une grille sauvegardée



Private Sub Command5_Click()
On Error GoTo ErrHand
    Dim i As Integer, j As Integer
    Dim Ligne As String
    
    Dim Fle As Integer
    
    If MsgBox("Vous allez perdre l'univers en cours, êtes vous sûr ?", vbYesNo) = vbNo Then Exit Sub
    
    CommonDialog1.FileName = ""
    CommonDialog1.InitDir = App.Path & "\save"
    CommonDialog1.Filter = "Sauvegardes (*.svi)|*.svi"
    CommonDialog1.ShowOpen
 
    If CommonDialog1.FileName <> "" Then
        Fle = FreeFile
        
        Open CommonDialog1.FileName For Input As #Fle
        
        'on sauvegarde le fichier
        For i = 1 To 50
            Line Input #Fle, Ligne
            For j = 1 To 50
                If Mid(Ligne, j, 1) "T" Then Univers(i, j) True Else Univers(i, j) = False
            Next j
        Next i
        Close #Fle
        Affichage
        
        MsgBox "C'est fait !"
    End If
       
    Exit Sub
ErrHand:
    MsgBox "Une erreur est survenue !"
    Affichage
End Sub



NB: Univers(i,j) est un tableau de booléens , si une cellule est présente , la valeur est vraie , s'il n'y a pas de cellule , faux .
Affichage est un autre algorithme qui sert à afficher la grille une fois les valeurs de Univers(i,j) déterminées .

1 réponse

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
8 mai 2010 à 19:02
Salut,

Si tu connais un peu l'anglais c'est pas trop compliqué :-)

Donc la sauvegarde d'une matrice de 50*50
si vrai --> t si faux --> F
Print #Fle, Ligne --> Ecrit la ligne dans le fichier

exemple de ligne (50 caracteres) FTF....TTT

et
Line Input #Fle, Ligne (lit la ligne)

et #Fle est un pointeur sur un fichier

Bon dev
0
Rejoignez-nous