Afficher les données d'un fichier texte [Résolu]

davidguillon 81 Messages postés lundi 9 août 2004Date d'inscription 15 septembre 2009 Dernière intervention - 30 avril 2006 à 16:53 - Dernière réponse : davidguillon 81 Messages postés lundi 9 août 2004Date d'inscription 15 septembre 2009 Dernière intervention
- 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
Afficher la suite 

8 réponses

Meilleure réponse
Gobillot 3140 Messages postés vendredi 14 mai 2004Date d'inscription 31 mars 2015 Dernière intervention - 1 mai 2006 à 00:58
3
Merci
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

Merci Gobillot 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 72 internautes ce mois-ci

PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 30 avril 2006 à 18:12
0
Merci
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]
davidguillon 81 Messages postés lundi 9 août 2004Date d'inscription 15 septembre 2009 Dernière intervention - 30 avril 2006 à 18:31
0
Merci
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
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 30 avril 2006 à 19:00
0
Merci
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>
PCPT 13368 Messages postés lundi 13 décembre 2004Date d'inscription 3 février 2018 Dernière intervention - 30 avril 2006 à 19:05
0
Merci
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)
crenaud76 4172 Messages postés mercredi 30 juillet 2003Date d'inscription 9 juin 2006 Dernière intervention - 30 avril 2006 à 23:21
0
Merci
Suis de l'avis de DS ! Il vaudrait mieux se pencher du coté des basees de données pour ce genre de truc !
davidguillon 81 Messages postés lundi 9 août 2004Date d'inscription 15 septembre 2009 Dernière intervention - 1 mai 2006 à 00:00
0
Merci
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
davidguillon 81 Messages postés lundi 9 août 2004Date d'inscription 15 septembre 2009 Dernière intervention - 1 mai 2006 à 02:09
0
Merci
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

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.