Sub main(), appel fonction modifiant un label [Résolu]

Signaler
Messages postés
14
Date d'inscription
jeudi 14 février 2013
Statut
Membre
Dernière intervention
3 juillet 2008
-
Touixi
Messages postés
14
Date d'inscription
jeudi 14 février 2013
Statut
Membre
Dernière intervention
3 juillet 2008
-
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

Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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)
Messages postés
14
Date d'inscription
jeudi 14 février 2013
Statut
Membre
Dernière intervention
3 juillet 2008

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!!
Messages postés
55
Date d'inscription
lundi 14 novembre 2005
Statut
Membre
Dernière intervention
23 juin 2008

Salut,

le shared n'est pas utile.

Bon dev
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
63
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)
Messages postés
14
Date d'inscription
jeudi 14 février 2013
Statut
Membre
Dernière intervention
3 juillet 2008

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!
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
16
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
Messages postés
14
Date d'inscription
jeudi 14 février 2013
Statut
Membre
Dernière intervention
3 juillet 2008

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.