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 :

Comment extraire une chaine de caractère?


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 17
    Par défaut Comment extraire une chaine de caractère?
    Bonjour,

    Je cherche à extraire une chaine de caractère d'un fichier pour pouvoir ensuite effectuer une comparaison entre cette chaine et le résultat retourné par une fonction.
    Pour le moment j'arrive à ouvrir le fichier qui contient la chaine de caractère et afficher cette chaine mais je n'arrive pas a effectuer la comparaison. Je pense donc que l'extraction de la chaine de caractères ne se fait pas.

    Pouvez vous m'aider?

    Merci

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Le plugin "boule de cristal" n'existe toujours pas malheureusement, donc il faudrait plus de détails pour pouvoir t'aider, comme du code, un exemple de chaîne d'entrée, ce que tu souhaites en résultat...

    Bref donne nous du concret, que l'on comprenne ce qui te bloque et que l'on puisse t'aider

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 17
    Par défaut
    Pour extraire ma chaine de caractère j'utilise le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    //Ouverture et lecture dans le fichier
                StreamReader oReadTextStream = new StreamReader (@"D:\\hashMD5.txt");   //Ouverture du fichier et lecture
                string Resultat;
                int iCounter = 0;
                while ((Resultat = oReadTextStream.ReadLine ()) != null)  //Boucle de lecture dans le fichier
                {
                  Console.Out.WriteLine("{1}", iCounter, Resultat);       //Affichage de la chaine de caractères
                  iCounter++;
                 }
                 oReadTextStream.Close ();      //Fermeture
    Le but de l'extraction de la chaine est de récupérer la valeur d'un hash MD5 contenue dans un fichier .txt pour la comparer avec elle que je réalise directement dans mon programme. Le résultat de mon hash md5 se trouve dans le "string hash" qu'on peut voir ci dessous.

    Ensuite pour effectuer la comparaison j'utilise la code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    //Enregistrement de la valeut du hash MD5 dans le string nommé hash
                    string hash = Convertion_en_string (md5Hash);
     
     
                    if (hash == Resultat)
                            {...}

  4. #4
    Membre émérite
    Avatar de dkmix
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    619
    Détails du profil
    Informations personnelles :
    Localisation : Jamaïque

    Informations forums :
    Inscription : Septembre 2007
    Messages : 619
    Par défaut
    Regarde peut etre du coté de String.IndexOf(string s)

    Si indexOf te retourne -1, c'est qu'il ne trouve pas.

    MSDN : http://msdn.microsoft.com/en-us/library/k8b1470s.aspx

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 17
    Par défaut
    Bonjour,

    J'ai regardé ce que tu m'a envoyé. Mais je crois que ça ne correspond pas vraiment avec ce que je veux faire. D'après ce que j'ai compris le string.IndexOf permet de faire une recherche dans le fichier en fonction de ce qu'on lui donne. Moi je ne cherche pas une expression précise mais juste extraire la seule ligne de mon fichier (qui est censée ne pas être connue). Quand je dis l'extraire c'est pour pouvoir l'utiliser par la suite, pas juste pour l'affichage.

  6. #6
    Membre émérite
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Par défaut
    Si tu essayes de comparer ta chaine en dehors de ta boucle, c'est normal qu'elle ne marche pas puisque la chaine est vide (tu assigne la valeur de la chaine avant de tester).

    Donc soit tu mets ton test dans la boucle (si tu dois faire plusieurs tests), soit tu assigne ta variable dans la boucle et non dans le test :

    Méthode 1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    string hash = Convertion_en_string (md5Hash);
    while ((Resultat = oReadTextStream.ReadLine()) != null)  //Boucle de lecture dans le fichier
    {
          if(Resultat .Equals (hash))
          {
              //...traitement
          }
    }
    Méthode 2 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    while (oReadTextStream.ReadLine() != null)  //Boucle de lecture dans le fichier
    {
         Resultat = oReadTextStream.ReadLine()
    }
    string hash = Convertion_en_string (md5Hash);
    if(Resultat .Equals (hash))
    {
          //...traitement
    }

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

Discussions similaires

  1. Comment extraire une chaine de caractères
    Par pierrot10 dans le forum Débuter
    Réponses: 18
    Dernier message: 31/07/2013, 10h09
  2. [C#] Comment inverser une chaine de caractères ?
    Par just1980 dans le forum Contribuez
    Réponses: 6
    Dernier message: 01/05/2011, 20h35
  3. Réponses: 2
    Dernier message: 03/10/2005, 16h23
  4. Réponses: 2
    Dernier message: 14/01/2005, 15h40
  5. comment vider une chaine de caractère
    Par gaut dans le forum C
    Réponses: 13
    Dernier message: 12/09/2003, 11h30

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