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 :

String.Format INCOMPREHENSIBLE C# [Débutant]


Sujet :

C#

  1. #1
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut String.Format INCOMPREHENSIBLE C#
    Bonsoir tout le monde

    J'ai besoin d'aide lol! je vais craké avec cette fonction!
    Je vous explique, je code sous WIN FORM VS2008, hors j'ai un gros soucis avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
                    string extrait;
     
                    StreamReader sr = new StreamReader("LoginMdp.txt");
                    extrait = sr.ReadLine();
     
                    string[] contenu = extrait.Split('°');
     
                    string id_save = String.Format({1:1},contenu);
                    string mdp_save = String.Format({3:1},contenu[3]);
    Je débute avec le c# et les 2 dernières lignes me bloquent!!! Je voudrai juste extraire se que j'ai besoin dans le fichier.
    Le HIC c'est que ca marche en console Application! A rien n'y comprendre.

    L'index (de base zéro) doit être supérieur ou égal à zéro et inférieur à la taille de la liste des arguments.

    Voilà ce que le compilateur me dit lol, je ne comprend pas....

    Merci de votre aide et de votre temps...

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par bugg7111 Voir le message
    Voilà ce que le compilateur me dit lol, je ne comprend pas....
    Euh... le compilateur te dit "lol" ?
    Je crois que tu as oublié le message d'erreur...


    De toutes façons, je ne comprends pas trop ce que tu cherches à faire, il faudrait que tu donnes plus de détails. Quelle est la structure de ton fichier LoginMdp.txt ? Tu veux juste récupérer le login/password ? Je ne vois pas trop pourquoi tu utilises String.Format alors...

    Je suppose d'après ton code qu'une ligne du fichier se présente comme ça :

    LeLogin°LeMotDePasse
    Donc si tu fais un Split selon le caractère '°', tu obtiens un tableau avec deux chaines : ["LeLogin", "LeMotDePasse"]. Donc tu as juste besoin de récupérer les 2 éléments du tableau :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
                    string id_save = contenu[0];
                    string mdp_save = contenu[1];

  3. #3
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Lorsque je compile avec ces 2 lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string id_save = contenu[0];
    string mdp_save = contenu[1];
    Voilà ce que le compilateur me retourne
    L'index se trouve en dehors des limites du tableau
    Et oui c'est tout à fait ça, le mot de passe et le login se trouve dans le fichier texte.

    Il me faut le récupéré à tout pris , il y aurait une autre solution ?? pour éviter ce message d'erreur??

    Merci d'avoir pris le temps de répondre

  4. #4
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    J'ai regarder dans la plupart des forum, je n'ai rien trouvé qui me permette de terminer ce programme.


    Cela fait pourtant plusieurs heurs que je cherche, mais toujours la même erreur ou un résultat qui ne correspond pas! ( lorsque je bidouille )

    Faut il convertir en string contenu[0] et contenu[1]?

    Je suis largué..

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par bugg7111 Voir le message
    Lorsque je compile avec ces 2 lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string id_save = contenu[0];
    string mdp_save = contenu[1];
    Voilà ce que le compilateur me retourne

    Et oui c'est tout à fait ça, le mot de passe et le login se trouve dans le fichier texte.
    Ca c'est pas une erreur du compilateur, c'est une exception (erreur lors de l'exécution). Ca veut dire que contenu n'a pas le nombre d'éléments voulu : tu essaies d'accéder au 1er élément alors qu'il n'y en a aucun (ou au 2e élément alors qu'une n'y en a qu'un)

    Fais voir le contenu exact du fichier (en modifiant le mdp bien sûr )

  6. #6
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Le contenu du fichier est :
    id:°LOG°/mdp:°PASS° (par exemple )

    Le code exacte est donc :

    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
    if (File.Exists("LoginMdp.txt"))   //si le fichier contenant les mot de passe existe
                {
                    string extrait;
     
                    StreamReader sr = new StreamReader("LoginMdp.txt");
                    extrait = sr.ReadLine();
     
                    string[] contenu = extrait.Split('°');
     
                    string id_save = contenu[1];
                    string mdp_save = contenu[3];
     
                    //string id_save = String.Format("{1.1}",contenu);
                   // string mdp_save = String.Format("{3.1}",contenu);
     
                    string Adr_Id_Mdp = "http://192.*.*.**/?identifiant=" + id_save + "&pass=" + mdp_save; //concatenation pour URL
     
                    RunUrl(Adr_Id_Mdp,true);
     
     
                }

    La partie concernée est toute ici !!


  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    C'est un peu pourri comme format
    Enfin bon... Dans ce cas, Split va renvoyer un tableau avec ces chaines :

    "id:"
    "LOG"
    "/mdp:"
    "PASS"
    ""

    Donc les index pour le login et le mot de passe ne sont plus 0 et 1, mais 1 et 3.
    Cela dit ça n'explique pas pourquoi tu as cette erreur... tu es sûr qu'il n'y a pas une ligne vide au début du fichier ?

  8. #8
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Le problème pourrait aussi venir de l'encodage du caractère "°".
    Solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamReader sr = new StreamReader("LoginMdp.txt",Encoding.GetEncoding("Windows-1252");

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Le problème pourrait aussi venir de l'encodage du caractère "°".
    Solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamReader sr = new StreamReader("LoginMdp.txt",Encoding.GetEncoding("Windows-1252");
    Pas bête:
    Tu crois que ca explique le fait que ca marche en console et pas en winform ? Tu peux l'expliquer ? // curiosité

  10. #10
    Expert confirmé Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Par défaut
    Citation Envoyé par alavoler Voir le message
    Pas bête:
    Tu crois que ca explique le fait que ca marche en console et pas en winform ?
    Oui, si dans un cas, la chaine est lue depuis un fichier et, dans l'autre, tapée à la console (le "°" etant alors codé comme dans l'éditeur de code) .

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Le problème pourrait aussi venir de l'encodage du caractère "°".
    Solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamReader sr = new StreamReader("LoginMdp.txt",Encoding.GetEncoding("Windows-1252");
    Bien vu ! Je pensais que le caractère '°' était identique entre ASCII et ISO, mais apparemment ce n'est pas le cas...

  12. #12
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Désolé du temps de réponse!!
    Le problème venait bien de '°', je l'ai remplacé par '*' et tout fonctionne!
    Merci d'avoir pris le temps de répondre

    On peut dire que le problème est résolu !!!!!

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 002
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 002
    Par défaut
    bugg7111
    le problème vient surtout du choix de format "qui est un peu pourri" // tomlev

    si l'utilisateur veut avoir un * dans son mot de passe (accessible au clavier...), tu peux rencontrer des pti soucis...

    le format XML est peut etre plus simple à manipuler (pas besoin de le parser, serialisation), plus clair, et plus adapté

    après c est toi qui voit

  14. #14
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par bugg7111 Voir le message
    Le problème venait bien de '°', je l'ai remplacé par '*' et tout fonctionne!
    Si tu as le choix du format, tu ferais mieux d'utiliser quelque chose de plus facile à parser... par exemple du XML, comme suggéré par alavoler. Il y a plein de façons de parser du XML, personnellement je trouve que le plus pratique est la sérialisation XML.

    Même un format de type INI sera plus pratique que ton format actuel (dans ce cas tu peux utiliser la classe IniFile de Dvp.NET)

  15. #15
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Mais quel sera l'intérêt d'un fichier XML?
    ( je n'ai jamais manié le XML... )

  16. #16
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par bugg7111 Voir le message
    Mais quel sera l'intérêt d'un fichier XML?
    - c'est standard
    - c'est propre
    - c'est bien structuré
    - il y a des outils tout faits pour le lire ou l'écrire

  17. #17
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Je peux donc l'inclure dans le programme C#?

  18. #18
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par bugg7111 Voir le message
    Je peux donc l'inclure dans le programme C#?
    inclure quoi ?
    oui, tu peux écrire en C# du code qui lit un fichier XML...

  19. #19
    Membre chevronné
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2011
    Messages
    610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2011
    Messages : 610
    Par défaut
    Inclure l'écriture et la lecture XML.

    XmlSerializer n'est pas reconnu , il faut inclure une librairie??

  20. #20
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par bugg7111 Voir le message
    XmlSerializer n'est pas reconnu , il faut inclure une librairie??
    il faut ajouter using System.Xml.Serialization; dans le code
    et ajouter au projet une référence à System.Xml.dll, mais normalement elle y est déjà

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [c#] string.Format argggggg
    Par the_bmo dans le forum C#
    Réponses: 6
    Dernier message: 04/11/2005, 16h06
  2. [VB.NET] StringBuilder Vs String.Format
    Par maitrebn dans le forum Windows Forms
    Réponses: 6
    Dernier message: 19/10/2004, 18h58
  3. [String] Probleme incomprehensible avec split
    Par scorpiwolf dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 20/07/2004, 21h21
  4. [C#] String.Format
    Par alexischmit dans le forum Windows Forms
    Réponses: 3
    Dernier message: 18/05/2004, 11h58
  5. [VC++ .NET] String::Format({?}, ...
    Par benoitB dans le forum MFC
    Réponses: 2
    Dernier message: 15/12/2003, 13h22

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