Partage
  • Partager sur Facebook
  • Partager sur Twitter

[VB.NET] Sélectionner ligne fichier.txt et stocker

bla - blo; stocker bla et blo dans deux var différentes.

    10 juillet 2011 à 11:50:47

    Bonjour,
    Mon petit programme doit stocker un nom d'utilisateur et un mot de passe.
    Je les stocke dans un fichier texte sous la forme "ndc - mdp" et ce fichier texte fait plusieurs ligne si la personne stocke plusieurs comptes.
    J'arrive ensuite à faire charger un compte en sélectionnant uniquement le ndc (placé avant le " -") et je met les différents comptes dans une listbox pour que la personne puisse choisir son compte.
    Après, je stocke l'item sélectionné dans une variable...
    Mais je ne sais pas comment faire pour stocker le mot de passe (mdp) dans une autre variable :/
    En gros, je voudrais faire :
    - Le prog stocke le ndc
    - Il récupère la position du ndc dans la listbox
    - Il utilise la position du ndc dans la listbox (ex : 3) pour aller à la ligne correspondante dans le fichier texte (ligne 3 par exemple).
    - Il sélectionne de "- " [en excluant le "- "] à la fin de la ligne (donc le mot de passe)
    Voilà :/
    J'espère avoir été clair et vous remercie pour vos futures réponses.
    • Partager sur Facebook
    • Partager sur Twitter
      10 juillet 2011 à 12:24:00

      Stocke les infos dans un Tuple par exemple...Le mieux restant de faire une classe à toi, équivalente au Tuple; le Tuple n'étant là que pour "dépanner" si t'a la flemme de faire une classe personnalisée :

      List<Tuple<int, String>> _ndcList = new List<Tuple<int, String>>();
      
      //[...]
      //Code de lecture du fichier texte, tonTextReader est le truc que tu utilises pour lire ton fichier (un StreamReader surement?) :
      String readLine = null;
      int lineNumber = 0;
      while((readLine = tonTextReader.ReadLine()) != null)
      {
          Tuple<int, String> infos = new Tuple<int, String>(lineNumber++, readLine.Split('-')[0]);
          _ndcList.Add(infos);
      }
      
      //Code de récupération des infos complète :
      Tuple<int, String> selectedInfos = (Tuple<int, String>)_myList.SelectedItem;
      String fullDatas = null;
      for(int lineNumber = 0; lineNumber != selectedInfos.Item1; lineNumber++)
      {
           fullDatas = tonTextReader.ReadLine();
      }
      //Ligne complète dans fullDatas à +/- 1 ligne; j'ai toujours eu du mal avec ça XD . Si ça marche pas à +/- 1 ligne, change le != par un <=.
      
      • Partager sur Facebook
      • Partager sur Twitter
        10 juillet 2011 à 13:07:41

        Hum, déjà merci pour ta réponse =)
        Mais ce que tu as mis est du C# :/
        Et, en fait, j'aimerais stocker dans un fichier texte (donc déjà les stocker dans deux variables) ces deux informations :/
        Merci tout de même :s
        • Partager sur Facebook
        • Partager sur Twitter
          10 juillet 2011 à 14:06:02

          Un simple dictionnaire (avec les ndc comme clés et les password comme valeurs) pourrait suffire non ? :)

          • Partager sur Facebook
          • Partager sur Twitter
            10 juillet 2011 à 14:16:25

            S'il veut stocker uniquement les couples ua/pwd, oui...Mais il parle de n° de ligne dans son premier post; ou alors j'ai rien compris à sa demande ^^ .

            Citation : vbnetmania

            Mais ce que tu as mis est du C# :/


            Erf...Vous voulez me tuer en me forçant à vous faire les traductions en VB.NET ou quoi?? XD

            Je te garanti pas que ça soit exactement ça, mais ça doit y ressembler assez :
            Dim _ndcList As List(Of Tuple(Of Integer, String)) = New List(Of Tuple(Of Integer, String))() 'J'ai un doute ici...Je sais pas comment instancier ce type de liste en VB.NET...Une tite correction?
            
            '[...]
            'Code de lecture du fichier texte, tonTextReader est le truc que tu utilises pour lire ton fichier (un StreamReader surement?) :
            Dim readLine As String
            Dim lineNumber As Integer = 0
            While((readLine = tonTextReader.ReadLine()) != Null)
                Dim infos As Tuple(Of Integer, String) = New Tuple(Of Integer, String)(lineNumber, readLine.Split('-')(0))
                _ndcList.Add(infos)
                lineNumber = lineNumber + 1
            End While
            
            'Code de récupération des infos complète :
            Dim selectedInfos As Tuple(Of Integer, String) = CType(_myList.SelectedItem, Tuple(Of Integer, String))
            Dim fullDatas As String
            Dim lineNumber As Integer
            For lineNumber = 0 To selectedInfos.Item1
                 fullDatas = tonTextReader.ReadLine()
            End For
            'Ligne complète dans fullDatas à +/- 1 ligne; j'ai toujours eu du mal avec ça XD . Si ça marche pas à +/- 1 ligne, change le != par un <=.
            
            • Partager sur Facebook
            • Partager sur Twitter
              10 juillet 2011 à 15:23:34

              Bon, j'utilise une méthode un peu archaïque peut-être mais :
              - je stocke les ndc/mdp dans un .txt en mettant
              "ndc1 - mdp1
              ndc2 - mdp2
              (...)"
              Pour pouvoir ensuite les ressortir dans une listbox (en sortant uniquement les ndc)
              Mais le problème, c'est que je ne sais pas comment faire pour, avec le ndc sélectionné, de pouvoir trouver le mdp correspondant en le mettant dans une variable :/
              Pour cela, j'avais pensé à récupérer la partie après le tiret mais ça a l'air d'être plus compliqué que çà en a l'air =)
              (Au fait, je stocke dans des fichiers textes pour pouvoir les ressortir quand je change de form (windows form).
              • Partager sur Facebook
              • Partager sur Twitter

              [VB.NET] Sélectionner ligne fichier.txt et stocker

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown