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

  1. #1
    Invité
    Invité(e)
    Par défaut Générer des boutons à partir d'un fichier txt
    Bonjour, mon projet consiste à ouvrir des fichiers .txt ou .par pour ensuite pouvoir générer des boutons, j'arrive bien à ouvrir n'importe quel fichier mais malheureusement je ne sais pas comment faire pour les générer en fonction de la taille du fichier.. J'aurais besoin de votre aide s'il vous plaît !

  2. #2
    Expert éminent
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    février 2010
    Messages
    3 782
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : février 2010
    Messages : 3 782
    Points : 6 668
    Points
    6 668
    Billets dans le blog
    1
    Par défaut
    Bonjour je voudrais aller quelque part merci de me dire comment faire
    Votre question est bien trop vague...
    Vous pouvez créer un bouton simplement en créant une nouvelle instance de la classe Bouton.
    Vous pouvez ensuite l'ajouter par exemple à une Form simplement en ajoutant l'instance de votre nouveau bouton à la collection Controls.

    Mais avec plus de précision, vous aurez probablement une réponse bien plus précise (et probablement très différente...)

    Accessoirement, que doivent faire vos boutons ?
    On ne jouit bien que de ce qu’on partage.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bon en gros, j'ai un logiciel pour simuler des organes du terrain, j'ai un fichier texte qui me donne le nom de ces organes avec leur adressage, je dois donc créer une application qui peut lire ces fichiers textes (n'importe quel fichier et s'adapter à chaque fichier) et engendrer des boutons en fonction des fichiers textes, donc le fonctionnement en clair de l'application c'est de lire un fichier texte et en fonction de ce qu'il lit (le nombre d'organes à simuler), il doit créer le même nombres de boutons que d'organes à simuler. Donc j'arrive bien à lire un fichier texte mais malheureusement à partir de ce fichier texte je n'arrive pas à créer des boutons. Si vous préférez l'application doit agir comme un simulateur de Modbus TCP/IP .Est-ce que c'est plus clair ? Sinon dites moi quel partie vous ne comprenez pas, je détaillerai au maximum.
    Je vous remercie de votre temps

  4. #4
    Membre expérimenté
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    janvier 2014
    Messages
    455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2014
    Messages : 455
    Points : 1 594
    Points
    1 594
    Par défaut
    Bonjour,

    Même si ils manquent toujours quelques infos (WinForm / WPF ?), voilà un début de piste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
                var organes = File.ReadAllLines("organes.txt");
     
                for (int i = 0; i < organes.Length; i++)
                {
                    Button button = new Button();
     
                    button.Text = organes[i];
                    button.Location = new Point(0, i * button.Size.Height); // On décale à chaque itération
     
                    panelBouton.Controls.Add(button); // Ou ta fenêtre, group box, etc ...
                }
    Tu crée un objet Bouton à la volée, puis tu l'ajoutes dans la liste de contrôles ou tu veux les afficher, que ce soit la fenêtre directement ou un panel prévu a cet effet.

    Après, c'est à toi de voir si tu veux les aligner verticalement, mettre une limite / une scrollbar si jamais il y en a trop etc ...

    Tu peux aussi rajouter des propriétés au bouton, et encore mieux, en faire un UserControl ou un Component histoire d'économiser du code et de faire ça proprement.
    Keep calm and debug it

    www.pixel-juice.net

  5. #5
    Invité
    Invité(e)
    Par défaut
    Effectivement, excusez-moi je n'y avais pas pensé, je travail sur WinForm !
    Merci beaucoup je comprends comment vous avez fait

  6. #6
    Invité
    Invité(e)
    Par défaut
    Voilà pour l'instant mon code permettant de lire un fichier et de le retranscrire sur TextBox,
    le problème que je continue d'avoir ce sont ces boutons que je n'arrive pas à générer.
    (Oui la structure du code est à revoir j'en conviens mais je ne fais que de débuter et j'ai encore beaucoup de mal)
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;
    using System.IO;
     
    namespace ReadText
    {
        /// <summary>
        /// Summary description for Form1.
        /// </summary>
        public class Form1 : System.Windows.Forms.Form
        {
            private System.Windows.Forms.Button browse;
            private System.Windows.Forms.OpenFileDialog openFile;
            private System.Windows.Forms.TextBox texte2Open;
            private System.Windows.Forms.TextBox text;
            /// <summary>
            /// Required designer variable.
            /// </summary>
            private System.ComponentModel.Container components = null;
     
            public Form1()
            {
                //
                // Required for Windows Form Designer support
                //
                InitializeComponent();
     
                //
                // TODO: Add any constructor code after InitializeComponent call
                //
            }
     
            /// <summary>
            /// Clean up any resources being used.
            /// </summary>
            protected override void Dispose(bool disposing)
            {
                if (disposing)
                {
                    if (components != null)
                    {
                        components.Dispose();
                    }
                }
                base.Dispose(disposing);
            }
     
            #region Windows Form Designer generated code
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InitializeComponent()
            {
                this.browse = new System.Windows.Forms.Button();
                this.texte2Open = new System.Windows.Forms.TextBox();
                this.openFile = new System.Windows.Forms.OpenFileDialog();
                this.text = new System.Windows.Forms.TextBox();
                this.SuspendLayout();
                // 
                // browse
                // 
                this.browse.Font = new System.Drawing.Font("Arial", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0)));
                this.browse.Location = new System.Drawing.Point(400, 8);
                this.browse.Name = "browse";
                this.browse.TabIndex = 1;
                this.browse.Text = "Recherche";
                this.browse.Click += new System.EventHandler(this.browse_Click);
                // 
                // texte2Open
                // 
                this.texte2Open.Location = new System.Drawing.Point(8, 8);
                this.texte2Open.Name = "texte2Open";
                this.texte2Open.Size = new System.Drawing.Size(384, 20);
                this.texte2Open.TabIndex = 2;
                this.texte2Open.Text = "";
                // 
                // text
                // 
                this.text.Location = new System.Drawing.Point(8, 40);
                this.text.Multiline = true;
                this.text.Name = "text";
                this.text.ScrollBars = System.Windows.Forms.ScrollBars.Both;
                this.text.Size = new System.Drawing.Size(464, 208);
                this.text.TabIndex = 3;
                this.text.Text = "";
                // 
                // Form1
                // 
                this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
                this.ClientSize = new System.Drawing.Size(480, 253);
                this.Controls.Add(this.text);
                this.Controls.Add(this.texte2Open);
                this.Controls.Add(this.browse);
                this.Name = "Form1";
                this.Text = "Boîte à bouton";
                this.ResumeLayout(false);
     
            }
            #endregion
     
            /// <summary>
            /// The main entry point for the application.
            /// </summary>
            [STAThread]
            static void Main()
            {
                Application.Run(new Form1());
            }
     
            private void browse_Click(object sender, System.EventArgs e)
            {
                if (openFile.ShowDialog() == DialogResult.OK)
                    texte2Open.Text = openFile.FileName;
                TextReader txt = new StreamReader(texte2Open.Text);
                string getText = txt.ReadToEnd();
                text.Text = getText;
     
            }
     
        }
     
    }

  7. #7
    Membre expérimenté
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    janvier 2014
    Messages
    455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2014
    Messages : 455
    Points : 1 594
    Points
    1 594
    Par défaut
    Quel est le problème du coup, il n'y a pas de code concernant la génération des boutons ?

    Concernant la lecture du fichier, il faudrait voir comment il est structuré. Est-ce un organe par ligne ? Ou plusieurs informations par ligne ?

    Si c'est un organe par ligne, il te suffit de faire comme l'exemple que je t'ai donné, y aller ligne par ligne, au lieu de tout lire d'un coup.

    Si c'est plus complexe, alors montre-nous quelques lignes histoire qu'on puisse te guider sur la lecture du fichier.
    Keep calm and debug it

    www.pixel-juice.net

  8. #8
    Invité
    Invité(e)
    Par défaut
    Effectivement il n'y a aucun code pour générer les boutons c'étaient pour vous situer.
    C'est un document ligne par ligne donc oui je conçois que ça va ressembler à ce que tu as pu m'envoyer mais je ne comprends pas ta dernière partie avec le "panelBouton" car quand je le fait dans mon code, on me dit que c'est impossible à faire.

  9. #9
    Membre expérimenté
    Avatar de PixelJuice
    Homme Profil pro
    Ingénieur .NET & Game Designer
    Inscrit en
    janvier 2014
    Messages
    455
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Ingénieur .NET & Game Designer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : janvier 2014
    Messages : 455
    Points : 1 594
    Points
    1 594
    Par défaut
    Le panel est un composant a rajouter a la Form, pour pouvoir y mettre tes boutons. Mais comme je le disais plus haut, ce n'est pas obligatoire, ce n'est qu'un contenant, il faut juste attribuer les boutons quelques part, la Form en elle même-peut accueillir ces mêmes boutons, c'est juste qu'avec un panel c'est plus facile et plus maniable. Rajoute un panel que tu appelleras panelBouton et mon code marchera. Si tu veux test sans panel, il te suffit juste de remplacer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    panelBouton.Controls.Add(button); // Ou ta fenêtre, group box, etc ...
    par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.Controls.Add(button); // Ajoute les boutons a la Form directement
    Keep calm and debug it

    www.pixel-juice.net

  10. #10
    Invité
    Invité(e)
    Par défaut
    Oui je te remercie j'ai pu réussir à générer des boutons, j'ai encore pas mal de boulot mais tu m'as débloqué, c'est super

Discussions similaires

  1. Créer des dossiers à partir d'un fichier .txt
    Par Hastings86 dans le forum Général Python
    Réponses: 3
    Dernier message: 04/03/2016, 10h53
  2. Réponses: 17
    Dernier message: 09/06/2011, 01h50
  3. Réponses: 2
    Dernier message: 26/01/2007, 15h58
  4. Réponses: 4
    Dernier message: 19/03/2006, 16h20

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