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 :

Lecture des données à partir d'une console


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2009
    Messages : 183
    Par défaut Lecture des données à partir d'une console
    Bonjour tout le monde,
    Je suis entrain de développer un petit programme qui fait appel à une méthode qui récupère les données depuis une console;
    voici mon programme:
    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
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Net;
    using ClientDataMigration.Properties;
    using ClientDataMigration.WSDataMigration;
    
    namespace ClientDataMigration
    {
        class Program
        {
            static void Main(string[] args)
            {
                DataMigration DM = new DataMigration();
                DM.Url = String.Format("http://localhost:4375/DataMigration.asmx", Settings.Default.Url);
                DM.Credentials = new NetworkCredential(Settings.Default.Login, Settings.Default.Password);
                
                 Console.WriteLine ( DM.test());
               Console.In.ReadLine();
    
               if (args.Count() > 0)
                {
                    DM.CreateLegacy(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9], args[10], args[11], args[12], args[13], args[14], args[15], args[16], args[17], args[18]);        
                }
            }
        }
    }
    par la méthode

    je veux passer à travers la console 18 arguments qui seront utilisés par la méthode CreateLegacy mais ce que j'ai constaté que args.count est toujours = 0
    Je sais pas quelle est ma faute.
    alors qu'est ce que je ferai pour que je puisse lire et récupérer les données tapées dans la console et les utiliser dans la méthode.

    Merci

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Par défaut
    Bonjour,

    Peux tu nous fournir la commande avec laquelle tu appelles ton programme ?
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  3. #3
    Membre confirmé Avatar de istace.emmanuel
    Homme Profil pro
    Senior Full-Stack .Net Developer
    Inscrit en
    Août 2009
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Full-Stack .Net Developer
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2009
    Messages : 125
    Par défaut
    Je ne sais si c'est voulu, mais les args[] commencent a 0 et tu ne fais jamais usage de ce premier argument, j’imagine que tu pense qu'il commencent à 1.

    Donc le soucis ne viendrait-il pas de la ?

    Concernant ta seconde question sur comment récupérer les données dans écrite dans la console :
    Tu peux rediriger le in et out de la console.
    Console.in et Console.out sont en read-only et donnent acces aux TexteWritter/TextReader actuels et Console.SetIn() et Console.SetOut() les définissent.

    Voici un exemple ou la sortie console est redirigé vers un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
                // Création d'un nouveau textwritter qui envera le flux dans un fichier
                TextWriter newTX = new StreamWriter(@"C:\monfichier");
     
                //Sauvegarde de l'ancien
                TextWriter oldTX = Console.Out;
     
                // A partir de maintenant tout est envoyé dans newTX
                Console.SetOut(newTX);
                Console.WriteLine(args[0] + args[1] + args[2]);
     
                // On "commit" du newTX vers le fichier
                newTX.Flush();
    Dans ton cas ou tu as besoin d’accéder aux informations de sortie, tu peu relire ensuite le fichier.

  4. #4
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2009
    Messages : 183
    Par défaut
    Merci pour vos réponses;
    pour faire appel à mon programme j'utilise un fichier .bat mais le problème n'est pas là.
    j'ai testé mon programme à l'aide du débogueur de visual studio et j'ai constaté que le programme n'excute pas la méthode CreateLegacy car tout simplement args.count = 0.
    En faite dans la console on va passer les arguments sur la même ligne en les séparant par des espaces et je pensait que le args[0],args[1],args[2] etc... peuvent lire les données mais il parait que non.

    alors ma question actuelle c comment lire les données de la meme ligne séparées par des espaces et passer chaque donnée en argument.(sans utiliser un fichier pour sauvegarder les données j'espere).

    Merci

  5. #5
    Membre émérite

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Par défaut
    pour faire appel à mon programme j'utilise un fichier .bat mais le problème n'est pas là.
    Si ton nombre d'argument est égal à 0, il y a surement un problème à ce niveau la.
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  6. #6
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2009
    Messages : 183
    Par défaut
    MaximePalmisano: oui t'as raison mais ce fichier est tout simplement pour tester: je vais t'expliquer: ce programme permet de charger des données vers une liste Sharepoint (la méthode CreateLegacy permet de faire cette tâche) et j'utilise ce fichier pour tester si les données sont remplies dans la liste ou non.
    Mais moi actuellement je débogue mon programme au sein de visual studio et j'utilse pas ce fichier bat pour tester.
    Mon objectif c connaitre les raisons pourlesquelles "args.count = 0" car si args.count>0 la méthode va être déclencher et la liste , sera, normalement implémenter.
    voila une petite description de mon projet.
    reste à savoir comment récuperer les données de la console.
    comment lire les données de la meme ligne séparées par des espaces et passer chaque donnée en argument

    Merci

Discussions similaires

  1. [MySQL] afficher des données à partir d'une date selectionnée
    Par rane dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 21/11/2007, 15h21
  2. Réponses: 2
    Dernier message: 16/07/2007, 13h46
  3. [VBA-E] extraire des données à partir d'une autre feuille
    Par zzman dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/01/2007, 13h26
  4. Réponses: 5
    Dernier message: 12/12/2006, 16h24
  5. [MySQL] Insérer des données à partir d'une db mysql dans un textarea
    Par minogttao dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/11/2006, 21h59

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