Afficher les données d'un fichier texte

Résolu
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009 - 30 avril 2006 à 16:53
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009 - 1 mai 2006 à 02:09
B'jour!

Je débute en VB et ne parviens pas à trouver ce que je souhaite dans l'aide du forum...

J'ai un formulaire dans mon application dans lequel l'utilisateur peut entre le nom et prénom du personne ainsi qu'un numéro qui la caractérise (une personne a 1 et 1 seul numéro unique).

J'ai réussi à écrire mes données dans mon fichier texte grace à un petit bout de programme qui commence par ça :
Open "C:\personne.txt" For Random As 1 Len = Len(SavePersonne)               (suite du code disponible ;) si vous en avez besoin)

Mais ce que je souhaite maintenant, c'est faire une autre partie de mon programme qui permet de consulter le nom et le prénom d'une personne en fonction du numéro qui sera rentré.
Donc une fois que les infos seront trouvées, il faudrait qu'il me les affiche... éventuellement dans un label ou dans une zone de texte...

Je ne vois pas quoi utiliser pour afficher tout celà...

Merci de me donner quelques pistes pour résoudre cela :)

David

8 réponses

Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
1 mai 2006 à 00:58
ben tu fais l'inverse

une Lecture au lieu d'une Ecriture et affichage dans les mêmes zones

tu peux ouvrir ton fichier une seule fois au début et le fermer seulement à la fin.

attention au contrôle de numéricité dans des zones textes ...

 


Private Sub BtnLectureEleve_Click()

    Open "C:\eleve.txt" For Random As #1 Len = Len(SaveEleve)

    Get #1, TxtNumEleve, SaveEleve

    TxtNumEleve = SaveEleve.numeroeleve   'inutile puisque c'est la clef

    TxtNomEleve = SaveEleve.nomeleve

    TxtPrenomEleve = SaveEleve.prenomeleve

    TxtClasseEleve = SaveEleve.classeeleve

    Close #1

End Sub

Daniel
3
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 avril 2006 à 18:12
salut,
çà dépend....
si tu as enregistré par exemple :

[NumUnique]
Nom=SonNom
Prenom=SonPrenom

tu peux utiliser le fichier ini (et donc les API)
si c'est plutôt :

"NumUnique","SonNom","SonPrenom"

il nous faut le code (disponible sur demande...) selon son accès tu pourras avoir directement les infos, où par travail de chaîne.

enfin pour l'affichage, çà dépend encore ; si tu en affiches un seul, si c'est modifiable, etc...
ton choix balanceras alors entre les txtbox, label, listbox, listview, ... ;)

PCPT  [AFCK]
0
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009
30 avril 2006 à 18:31
Super, merci pour ta réponse :)

Alors, ce que j'ai fait pour enregistrer une personne (un élève plus précisément), c'est:

Private Sub BtnOkAjoutEleve_Click()
Open "C:\eleve.txt" For Random As 1 Len = Len(SaveEleve)
SaveEleve.numeroeleve = TxtNumEleve
SaveEleve.nomeleve = TxtNomEleve
SaveEleve.prenomeleve = TxtPrenomEleve
SaveEleve.classeeleve = TxtClasseEleve
Put 1, TxtNumEleve, SaveEleve
Close 1
End Sub

et le module qui s'y attache est:

Public Type ELEVE
numeroeleve As Integer
nomeleve As String * 50
prenomeleve As String * 50
classeeleve As String * 10
End Type

Public SaveEleve As ELEVE

Donc voilà, d'après ce que tu m'as dit, j'ai bien l'impression d'enregistrer sous la forme ""NumUnique","SonNom","SonPrenom"" comme tu le proposes. Non?

Aussi, je compte afficher les données d'une seule personne à la fois. L'utilisateur entre un numéro et le logiciel affiche tout seul le prénom, le nom et la classe correspondant.

Merci 1000 fois de me décoincer :)

David
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
30 avril 2006 à 19:00
Hum, ce genre de manipulation serait bien plus simple et plus rapide en utilisant une base de données plutôt qu'un fichier à accès direct !!!

_
Avant de poster dans le forum,
prière d'aller lire ceci :
http://www.codes-sources.com/reglement.aspx
<s></s>
0

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

Posez votre question
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 avril 2006 à 19:05
non, le résultat voulu serait avec :

Private Sub BtnOkAjoutEleve_Click() 
   Open "C:\eleve.txt" For Append As #1 
        Write #1, TxtNumEleve.Text, _ 
                  TxtNomEleve.Text, _ 
                  TxtPrenomEleve.Text, _ 
                  TxtClasseEleve.Text 
    Close #1 
End Sub

<small> Coloration
syntaxique automatique [AFCK]</small>
       

là on ajoute à chaque enregistrement.

mais tu veux quoi, lister à chaque fois? ou avoir une sorte de fichier temporaire pour chaque utilisateur sans sauver.. (donc écraser les donner du précédent)
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
30 avril 2006 à 23:21
Suis de l'avis de DS ! Il vaudrait mieux se pencher du coté des basees de données pour ce genre de truc !
0
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009
1 mai 2006 à 00:00
Merci pour vos réponses.

Il se trouve que je dois le faire avec un fichier à accès direct, et pas avec une base de donnée... Mais je conviens qu'il serait plus convenable de le faire avec une base de donnée.

Pour répondre à PCPT, je veux en fait que le fichier serve... de base de donnée lol. C'est à dire que le fichier sera stocké tout le temps sur l'ordinateur et l'utilisateur pourra se servir du logiciel et retrouver ses données quand il le voudra.

Je pense que la méthode que j'ai employé pour l'écriture fonctionne mais il faut maintenant que j'arrive à afficher les données rentrées ;)

Merci de votre aide!

David
0
davidguillon Messages postés 81 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 15 septembre 2009
1 mai 2006 à 02:09
Hallelujah merci merci merci !!!

[javascript:emoticon(':ANIMbien027:') ][javascript:emoticon(':lunette:') ][javascript:emoticon(':ANIMperso015:') ][javascript:emoticon(':ANIMperso019:') ][javascript:emoticon(':ANIMdiv033:') ][javascript:emoticon(':ANIMdiv041:') ][javascript:emoticon(':ANIMbien027:') ][javascript:emoticon(':ANIMbien027:') ][javascript:emoticon(':ANIMbien027:') ][javascript:emoticon(':ANIMbien027:') ][javascript:emoticon(':ANIMbien028:') ][javascript:emoticon(':ANIMbien028:') ][javascript:emoticon(':ANIMbien028:') ][javascript:emoticon(':ANIMconfus019:') ][javascript:emoticon(':ANIMconfus019:') ][javascript:emoticon(':ANIMconfus019:') ][javascript:emoticon(':ANIMconfus019:') ][javascript:emoticon(':ANIMconfus019:') ][javascript:emoticon(':ANIMconfus019:') ][javascript:emoticon(':ANIMconfus019:') ][javascript:emoticon(':ANIMconfus019:') ]

Lol, merci beaucoup :) C'est exactement ce que je cherchais :)

Ca fait super plaisir de voir qu'on peut être aidé rapidement et efficacement :)

Je vais en faire bon usage :)

Bonne nuit à tous!

David
0
Rejoignez-nous