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 :

Variable globale de type tableau de chaines


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut Variable globale de type tableau de chaines
    Bonjour,

    Projet C#, winforms

    je cherche à créer une variable globale accessibles à tous mes objets, permettant dans un premier temps de récupérer le tableau "args" des arguments de la ligne de commande et d'en injecter d'autres dans ce même tableau au besoin.

    J'ai tenté de créer ceci :


    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.Data.Sql;
    using System.Data.SqlClient;
     
    namespace Films
    {
        public sealed class globals
        { public string[] parametres; }
     
        static class Program
        {
            /// <summary>
            /// Point d'entrée principal de l'application.
            /// </summary>
            [STAThread]
     
            static void Main(string[] args)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
     
                globals.parametres prn = new globals.parametres;
                prn := args;
    Évidemment rien ne marche.

    Mon but est de récupérer des paramètres en ligne de commande du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonApplication.exe -S"toto" -U"titi" -D"tata"
    Et donc d'avoir si possible un tableau à double entrée code/valeur

    Quelqu'un aurait-il la bonté de m'expliquer comment faire ?

    Merci
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    Après moult essais, j'ai réussi à faire ça :
    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
     
    namespace Films
    {
        public sealed class globals
        { public string[] parametres; }
     
        static class Program
        {
            /// <summary>
            /// Point d'entrée principal de l'application.
            /// </summary>
            [STAThread]
     
     
     
            static void Main(string[] args)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
     
                globals prm = new globals();
                prm.parametres = args;
    Mais dans une "form" appelée par la "form" MAin, args n'est pas reconnu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
           private void ConnexionForm_Activated(object sender, EventArgs e)
            {
                globals prm = new globals();
                prm.parametres = Main.args;
    ça pêche sur le main.
    J'ai essayé args, Films.Main.args... (le projet s'appelant Films.


    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    normalement, avec

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Environment.CommadLine()
    tu auras ton bonheur

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    Ok, j'ai fait ça dans Main :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                globals prm = new globals();
                prm.parametres = args;
    ou encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                prm.parametres = Environment.GetCommandLineArgs();
    mais je ne peut toujours l'utiliser que localement !

    Je veut pouvoir avoir accès à ma variable prm quelqu'en soit le nom dans toutes les "forms" !

    Or je n'ai aucun accès dans une Forms intitulé Forms1.cs.... à un quelconque objet de global, ni parametres, ni prm...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    tu mets ta variable static dans la class program en ayant déclarer en public ton objet

    et normalement, PARTOUT, tu pourrais faire:


  6. #6
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    22 010
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 22 010
    Billets dans le blog
    6
    Par défaut
    Ceci semble coller :

    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
    namespace Films
    {
     
        // ### ma classe pour stocker mes variables globales (tableau de lignes)
        public sealed class globals
        { public string[] parametres; }
     
        static class Program
        {
            // ### mes variables globales sont stockées dans ce tableau
            static globals prm = new globals();
     
            /// <summary>
            /// Point d'entrée principal de l'application.
            /// </summary>
            [STAThread]
     
            static void Main(string[] args)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
     
                /// ### mon tableau de variables globales est alimentée par la ligne de commande, méthode 1 :
                prm.parametres = args;
                /// ### mon tableau de variables globales est alimentée par la ligne de commande, méthode 2 :
                prm.parametres = Environment.GetCommandLineArgs();
    OK, mais comment l'utiliser dans mon autre form ????

    J'ai essayé :
    prm
    prm.parametres
    Program.prm
    Film.Program.prm
    Program.prm.parametres
    Film.Program.prm.parametres
    ....

    Rien ne marche

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  7. #7
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    public static pour tes classes sinon elles ne seront pas visibles ailleurs !!!

Discussions similaires

  1. Créer une variable globale de type tableau
    Par beegees dans le forum Langage
    Réponses: 1
    Dernier message: 27/10/2008, 00h26
  2. [E-03] Utiliser une variable globale de type Const pour mes colonnes
    Par Mimosa777 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 23/10/2008, 20h48
  3. [c#][asp.net]variable de session type tableau multidim
    Par chorokari dans le forum ASP.NET
    Réponses: 4
    Dernier message: 18/07/2008, 22h34
  4. [Tableaux] Une variable dynamique de type tableau
    Par martin__ dans le forum Langage
    Réponses: 3
    Dernier message: 02/08/2007, 19h22
  5. Réponses: 2
    Dernier message: 10/12/2006, 09h57

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