onix64
Messages postés23Date d'inscriptionvendredi 7 août 2009StatutMembreDernière intervention 7 août 2011
-
22 août 2010 à 13:31
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 2013
-
22 août 2010 à 15:54
Bonjour à tous!
J'ai fais quelques recherches sur le site mais je n'arrive pas à me dépatouiller de mon petit problème dû en partie au fait que je débute sur Visual Basic je pense.
J'ai un fichier texte avec les infos suivantes par exemple rangées en colonnes comme cela :
Thomas
12
45
8
Paul
23
60
4
Franck
10
23
2
J'ai 1 label (dans lequel j'inscris un prénom) et 3 textbox (dans lesquels je souhaite inscrire les chiffres correspondants).
Je cherche à écrire un petit bout de programme qui ouvre mon fichier texte, compare le prénom que je rentre dans mon label.caption avec toutes les lignes de mon fichier texte puis dès que mon label.caption = la ligne du fichier texte on recopie les 3 lignes suivantes dans mes textbox.
Exemple : je tape Paul dans mon caption et les textbox se remplissent avec 23, 60 et 4.
J'espère être assez clair n'hésiter pas si vous ne comprenez pas bien. J'ai fais des petits bouts de programme mais j'ai quelques erreurs : recopie le même chiffre 3 fois, messages d'erreurs, etc ...
Merci d'avance pour votre aide
A voir également:
Recopier la ligne n+1 et n+2 en fonction de la ligne n
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 22 août 2010 à 15:54
Petit oubli de ma part : avant la déclaration de tPersonne, ajoute un Option Explicit. Ca t'évitera de perdre du temps pour des conneries de variables non déclarées
Voici l'algo, y'a plus qu'à traduire en VB6 :
Tant que (pas fin de fichier),
Redim Preserve Personnes(i)
lis la ligne et place le résultat dans Personnes(i).Prenom
lis les trois autres lignes et place leur contenu dans les variables Personnes(i).NombreX
incrémente i
Fin tant que
VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
cs_ghuysmans99
Messages postés3982Date d'inscriptionjeudi 14 juillet 2005StatutMembreDernière intervention30 juin 201316 22 août 2010 à 14:23
Déjà ça serait une bonne idée de stocker ça en mémoire (tu pourras manipuler plus facilement la structure). Une fois que c'est fait, il te suffit de parcourir la structure à la recherche du nom que tu veux et une fois que tu l'as trouvé, tu n'as plus qu'à accéder à la variable que tu veux. Exemple (à coller dans un module) :
Public Type tPersonne
Prenom As String
Nombre1 As Integer
Nombre2 As Integer
Nombre3 As Integer
End Type
Public Personnes() As tPersonne
Public Function ChargeFichier(Fichier As String) As Boolean
'Renvoit True si OK
'-- LECTURE DU FICHIER ICI ---
End Function
Public Function CherchePersonne(Prenom As String) As Integer
'Renvoit -1 si pas trouvée
Dim i As Integer
For i = 0 To UBound(Personnes)
If Personnes(i).Prenom = Prenom Then
CherchePersonne = i
Exit Function
End If
Next i
CherchePersonne = -1
End Function
Private Sub Main()
Dim n As Integer
ChargeFichier "personnes.txt"
n = CherchePersonne("Thomas")
If n <> -1 Then
With Personnes(n)
MsgBox .Nombre1 & " - " & .Nombre2 & " - " & .Nombre3
End With
Else
MsgBox "Personne non trouvée."
End If
End Sub
VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
onix64
Messages postés23Date d'inscriptionvendredi 7 août 2009StatutMembreDernière intervention 7 août 2011 22 août 2010 à 14:39
Merci beaucoup pour ta réponse mais c'est un compliqué pour moi.
J'ai mis tout ça dans un module comme tu m'as dit et j'ai nommé mon fichier texte "personnes.txt"
J'ai rajouté la ligne Open "D:\personnes.txt" For Input As #1 à la place de '-- LECTURE DU FICHIER ICI ---
Et ensuite comment l'utiliser ?
merci encore