Sub main(), appel fonction modifiant un label

Résolu
Touixi Messages postés 14 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 3 juillet 2008 - 23 juin 2008 à 13:50
Touixi Messages postés 14 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 3 juillet 2008 - 24 juin 2008 à 06:38
Bonjour à tous.

Mon application doit ouvrir un fichier texte défini, et en extraire des données.
Pour ce faire j'ai pensé à utiliser la fonction sub main() qui ouvre automatiquement mon fichier.

J'appelle donc ma fonction LectureFichier(Fichier) dans le main.
Cette fonction est définie plus haut comme ceci:
public Shared function LectureFichier( ByVal fichier As String) ....

Cette fonction a pour but de modifier des label dans la Form. Malheureusement impossible de le faire avec cette méthode Shared .

Avez-vous une solution?

j'espère avoir été clair.
je vous remercie d'avance

7 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 juin 2008 à 23:57
Re
Oui, bah regarde ce que j'ai écrit :
- Enlève le "Shared" qui ne sert à rien
- Fais un Load de ta forme avant de lire ton fichier

"Mon problème est qu'il faut que, dès l'appel de l'application, le fichier texte soit généré" : Bah ... oui, faut qu'il existe, vaudrait mieux. Généré par qui ? par toi avec tes données, non ?
"Je crée donc une fonction main() qui initialise donc le Form est j'appelle la fonction" : Oui, et ?
"Problème: la phrase plus haut" : la prochaine fois, essaye de tout mettre dans l'ordre, stp

Si tu as un problème, ne nous raconte pas ce à quoi tu penses, mais ce que tu as fait, les erreurs que tu rencontres, les résultats que tu n'as pas ...
Pour ton erreur de Shared, voilà 12h qu'on te donne la réponse ... et ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
3
Touixi Messages postés 14 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 3 juillet 2008
24 juin 2008 à 06:38
Je n'ai finalement pas utiliser de main().
J'appelle ma fonction dans InitializeComponents. Ce n'est pas très propre mais ca marche.

Merci énormément pour votre aide!!
3
cs_molo molo Messages postés 55 Date d'inscription lundi 14 novembre 2005 Statut Membre Dernière intervention 23 juin 2008
23 juin 2008 à 15:27
Salut,

le shared n'est pas utile.

Bon dev
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
23 juin 2008 à 15:28
Salut
Bah ... supprime Shared
Normalement, la Sub Main sert à appeler la forme principale.
Si tu dois modifier le contenu de composants appartenant à cette forme, il faut bien sûr qu'elle soit chargée avant.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0

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

Posez votre question
Touixi Messages postés 14 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 3 juillet 2008
23 juin 2008 à 16:55
Je vous remercie sincèrement pour vos réponses. Cependant, mon problème n'est pas résolu.
Le problème lorsque je ne mets pas LectureFichier en Shared est "impossible de faire référence à un membre instance d'une classe partagée."

Je vais tenter d'exprimer clairement ce que je souhaite faire.
Une classe Form est créée dans laquelle se trouve des Labels.
Je crée une fonction LectureFichier(ByVal Fichier dans lequel) dans lequel je modifie ces labels en fonction d'un fichier au format .txt.
Mon problème est qu'il faut que, dès l'appel de l'application, le fichier texte soit généré. En effet, le fichier txt est un fichier de dont les données doivent être affichées par mon application.

Je crée donc une fonction main() qui initialise donc le Form est j'appelle la fonction
LectureFichier(Fichier)
Problème: la phrase plus haut
Est-ce une bonne manière de précéder?

Merci pour votre aide!
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
23 juin 2008 à 17:05
Pourquoi ne pas lancer la Form normalement, et tu fais un Call LectureFichier(Fichier) à l'évènement Load de cette Form ?

@++

le mystérieux chevalier,"Provençal, le gaulois"
Forum Office & VBA
0
Touixi Messages postés 14 Date d'inscription jeudi 14 février 2013 Statut Membre Dernière intervention 3 juillet 2008
24 juin 2008 à 05:30
En enlevant le mot Shared, l'erreur il n'ya plus d'erreur dans la fonction LectureFichier.
Malheureusement l'appel de cete fonction ne fonctionne pas, et j'ai l'erreur:  impossible de faire référence à un membre Instance.
Voici mon code:

Public Shared Sub main()
   Dim Form As new Form1
   Form.Show
   LectureFichier(fichier) ' ici erreur de référence à un membre instance
End Sub

Désolé pour mon silence, mais n'étant pas en France actuellement, et avec le décalage horaire difficile de se coordonnées.
Merci encore pour vos réponses.
0
Rejoignez-nous