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 :

récupérer des paramètres a partir d'un fichier texte


Sujet :

C#

  1. #1
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut récupérer des paramètres a partir d'un fichier texte
    Bonjour, je dois créer un programme windows console qui recoit comme paramètre d'entrée un fichier txt dont je dois définir le format, qui doit contenir 5valeurs, je dois lire le fichier, être capable de récupérer les 5 valeurs puis les insérer dans ma base, je sais pas comment je dois définir le format de mon fichier, si vous avez une idée je suis preneur ?

  2. #2
    Membre habitué Avatar de Antho42
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Points : 161
    Points
    161
    Par défaut
    Salut !

    C'est un peu vague tout ça...
    Étant donné que tu parle de fichier .txt, les formats possibles sont variés.

    Il y a une importance dans l'ordre des 5 valeurs ?
    Tu dois savoir telle valeur correspond a quoi ou bien ce n'est pas important et une fois que tu les a récupérées, tu les insères dans ta base "n'importe comment" !?

    Si tu dois savoir que une telle valeur correspond a qqchose tu peux faire un espèce de couple <Key/Value> ou <Key=Value> , etc. avec un couple par ligne.

    Exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Nom=Dupont
    Prenom=Jean
    Age=50
    Sexe=M
    Langage=C#
    Si tu t'en fous de savoir quoi est quoi, tu peux faire une valeur par ligne ou toutes les valeurs à la suite séparées par un séparateur, etc.

    C'est pas les solutions qui manquent.

  3. #3
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    Bonjour, donc j'ai opté pour cette proposition de clé valeur, maintenant je dois créer une méthode auquel je dois donner le chemin du fichier, elle va lire le fichier puis récupère les valeur puis les insérer dans la base, si vous avez une exemple je suis preneur *!!!

    Fichier txt :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Nom=Dupont
    Prenom=Jean
    Age=50

  4. #4
    Membre habitué Avatar de Antho42
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Points : 161
    Points
    161
    Par défaut
    Salut,

    Si tu dois juste lire le fichier , tu peux jouer avec StreamReader et la fonction Split() sur les chaines lues pour récupérer la clé et la valeur d'une ligne.

    Le constructeur de StreamReader prend un fichier à lire en paramètre et il te suffit ensuite de lire (avec la fonction Read() ou ReadLine()) de ton StreamReader jusqu'à ce que ça renvoi null.

    Tu trouveras des infos ici.

    En gros, tu devrais avoir quelque chose ressemblant à :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    using (StreamReader SR = new StreamReader(_file))
                    {
                        string[] mot = new string[2];
                        while ((ligne = SR.ReadLine()) != null)
                        {
                            mot = ligne.Split(new string[] { "=" }, StringSplitOptions.None);
     
                            // mot[0] contient la Key
                            // mot[1] contient la Value
                        }
                    }
    A toi maintenant de rajouter les lignes de code qui te permettront d'ajouter ces valeurs dans ta base de données.

    Bon travail

  5. #5
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    Bonjour, voila ce que j'ai fait mais je crois que j'ai pas bien saisi l'utilisation des fichier texte c'est pourquoi j'ai eu plein d'erreurs :

    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
    static void Main(string[] args)
            {
                Console.WriteLine("Début programme : ");
                string[] result = this.RecupererValeurs("C:/SD.txt");
     
            }
            private string[] RecupererValeurs(StreamReader SR)
            {
                using (StreamReader SR = new StreamReader(_file))
                {
                    string[] mot = new string[5];
                    while ((ligne = SR.ReadLine()) != null)
                    {
                        mot = ligne.Split(new string[] { "=" }, StringSplitOptions.None);
     
                        // mot[0] contient la Key
                        // mot[1] contient la Value
                    }
                }
                return mot;
            }

  6. #6
    Membre habitué Avatar de Antho42
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Points : 161
    Points
    161
    Par défaut
    Salut,

    Oui en effet il y a quelques petits problèmes
    Et je ne pense pas que tous viennent du fait que tu as difficile de saisir comment fonctionne les instructions permettant de lire un fichier.

    L'idée de faire une méthode qui te renvoie le résultat est une bonne idée mais pense à ce qu'elle doit renvoyer, comment tu veux l'exploiter ensuite.

    Et si tu donnes un fichier à lire en paramètre à cette méthode, arrange toi pour que la méthode prenne un string en paramètre (et non un StreamReader).
    Bref, tu as peut-être été un peu vite mais ce sont des petits détails d'inattention.

    Tu devrais plutôt avoir quelque chose du style:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    static void Main(string[] args)
            {
                Console.WriteLine("Début programme : ");
                List<string[]> result = this.RecupererValeurs("C:/SD.txt");
     
                foreach(string[] w in result)
                {
                      Console.WriteLine(w[0]+"\t"+w[1]);
                }
     
            }
    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
     
    private List<string[]> RecupererValeurs(string file)
            {
                List<string[]> ret = new List<string[]>();
     
                using (StreamReader SR = new StreamReader(file))
                {
                    string[] mot = new string[2];
                    string line = "";
     
                    while ((line = SR.ReadLine()) != null)
                    {
                        mot = line.Split(new string[] { "=" }, StringSplitOptions.None);
                        ret.Add(mot);
                    }
                }
                return ret;
            }
    Voila.
    Ici j'affiche le résultat récupéré dans le Main().
    Le code est simple à comprendre, n'hésite pas à lire la doc MSDN.

    Au lieu d'afficher les résultats, tu n'as donc plus besoin qu'à les insérer dans ta base de données.

    Bonne journée.

  7. #7
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Aussi, si ton fichier ne fais pas 45 millions de lignes tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string[] Lignes;
    Lignes = File.ReadAllLines("C:\\SD.txt", Encoding.Default);
    Dans ton tableau Lignes tu as tout ton fichier ligne par ligne.

  8. #8
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    il me donne l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur	1	Le mot clé 'this' n'est pas valide dans un initialiseur de propriété statique, de méthode statique ou de champ statique

  9. #9
    Membre habitué Avatar de Antho42
    Profil pro
    Inscrit en
    Février 2009
    Messages
    173
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 173
    Points : 161
    Points
    161
    Par défaut
    Citation Envoyé par Msysteme Voir le message
    il me donne l'erreur suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur	1	Le mot clé 'this' n'est pas valide dans un initialiseur de propriété statique, de méthode statique ou de champ statique
    Le message d'erreur est assez explicite ...

    Rajoute un "static" devant le private de la méthode RecupererValeurs et enleve le "this" devant l'appel à la méthode dans le Main()

  10. #10
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    j'ai compris le message mais je savais pas c'est quoi la solution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 01/09/2013, 16h18
  2. Récupérer des données formattées à partir d'un fichier txt
    Par MANNATHEKING dans le forum Documents
    Réponses: 2
    Dernier message: 14/01/2010, 11h40
  3. [SQL] Comment récupérer des champs a partir d'un fichier de sauvegarde?
    Par baguira dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/03/2007, 18h23
  4. Réponses: 5
    Dernier message: 21/09/2006, 11h50
  5. Lancer des commandes dos à partir d'un fichier texte
    Par tpdm dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 09/08/2005, 16h56

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