IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Accès Variable, tableau


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2010
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 7
    Par défaut Accès Variable, tableau
    Bonjour,

    je développe une petite application qui me permet d'installer des applications de manière silencieuse après avoir lu les paramètres stockés dans un fichier XML.

    Mon application :




    Main
    Je remplis dynamiquement un simple listview
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void MainFormLoad(object sender, EventArgs e)
    {
    	foreach (string subfolder in Directory.GetDirectories(".\\silent")) 
    	{
    		ListViewItem it=new ListViewItem();
    		it.SubItems[0].Text= Path.GetFileName(subfolder).ToString();
    		it.SubItems.Add("En attente...");
    		liste.Items.Add(it).Checked = true; 				
    	}
    }

    Bouton Install
    - J'initialise un tableau avec la liste des applications à installer
    - Je lis les paramètres d'install renseignés dans un fichier xml
    - je lance l'install
    - En suivant je souhaite supprimer la première application de ma liste pour lancer l'application suivante, UNIQUEMENT lorsque l'application précédente a été supprimée. Pour cela j'ai besoin d'accéder au tableau ins[] déclaré dans le code suivant, mais je n'y arrive pas


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    void Button1Click(object sender, EventArgs e)
    {		
    	// on récupère le type d'os
    	string os = GetOperatingSystemName()+Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE");
     
    	// on récupère la liste des applications à installer
    	String[] ins = new string[liste.CheckedItems.Count];
    	int index = 0;
     
    	foreach (ListViewItem lvi in liste.Items)
    	{
    		if (lvi.Checked == true)
    		{
    			ins[index] = lvi.Text;
    			index++;
    		}
    	}
     
    	// on récupère les informations d'installation
    	XPathDocument doc = new XPathDocument("silent\\" + ins[0] + "\\si.xml");
            XPathNavigator nav = doc.CreateNavigator();
            XPathNodeIterator iter = nav.Select("si/"+os);
            iter.MoveNext();
     
            // récupération des paramètres d'install
    	string exec = iter.Current.SelectSingleNode("exec").Value;
     
    	// on lance l'install
    	Process install = Process.Start("silent\\" + ins[0] + "\\" +  exec);
    	install.EnableRaisingEvents = true;
    	install.Exited += new EventHandler(nextapp);
    }
     
    void nextapp(object sender, EventArgs e)
    {
    	// ici accès au tableau ins
    }
    Voilou, je veux donc accéder au tableau ins[].

    Je démarre en C# et je suis un peu perdu du coup vu qu'à ce que j'ai compris il n'y a pas vraiment de variable globale dans ce langage.
    D'ailleurs si quelqu'un veut bien me préciser cette histoire de variables globales je lui en serais reconnaissant.

    Merci d'avance,

    Flexii

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    81
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 81
    Par défaut
    Bah en fait, soit tu déclare ta variable ins[] au niveau de la classe, ce qui la rendra donc accessible par toute les méthodes de la classe, par contre, il faudra que tu gère bien les changements de taille & cie de ton tableau.

    Dans le cas ou c'est 2 classes différentes qui doivent accéder à la même variable, donc en gros une variable globale, il faut la déclarer dans la classe comme "static".

    Tu peux trouver plein d'information dans la faq c# ici :
    http://faqcsharp.developpez.com/?pag...riable_globale

    [Edit] Je pense que l'utilisation de List<String> te simplifiera énormément les choses, car des String[] en global à gérer, c'est quand même plus chiant

Discussions similaires

  1. Réponses: 17
    Dernier message: 01/01/2013, 19h10
  2. Réponses: 2
    Dernier message: 03/11/2007, 11h24
  3. variables tableau dans requettes mysql ... et affichage
    Par mulbek dans le forum Requêtes
    Réponses: 3
    Dernier message: 26/10/2005, 16h29
  4. Problème d'initialisation variable tableau
    Par HeZiX dans le forum Langage
    Réponses: 3
    Dernier message: 08/06/2005, 16h30
  5. Acces à une variable-tableau de PHP
    Par Erwan21 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 09/02/2005, 13h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo