VB/VB.Net Erreur lors de la modification d'un compte.

A

Anonymous

Invité
#1
Bonjour,

Voilà j'essaie désespérément de résoudre ce bug mais je ne comprends pas d'où il provient. Je travaille donc sur la gestion des comptes d'un bot, plus particulièrement ici la modification des comptes. Voici mon code, tout simple :

Code:
Private Sub AccountsList_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles AccountsList.DoubleClick

        If Not AccountsList.SelectedItem = "" Then
            Dim account = AccountsList.SelectedItem
            Dim reader As New StreamReader(Windows.Forms.Application.StartupPath & "\Data\Accounts.magic", True)
            Dim ligne
            While Not reader.EndOfStream
                ligne = reader.ReadLine
                If account = Mid(ligne, 1, Len(account)) Then
                    TextCompte.Text = ligne.Substring(0, ligne.IndexOf("|"))
                    TextPass.Text = ligne.Substring(ligne.IndexOf("|") + 1)
                End If
            End While
            reader.Close()
        Else
            MsgBox("Vous n'avez pas sélectionné de compte !", MsgBoxStyle.Exclamation, "Veuillez sélectionner un compte !")
        End If

    End Sub
Le problème, c'est qu'avec ce code, lorsque j'essaie de charger un nom de compte dont un autre a la même racine, cela charge celui le plus long. Je m'explique :

Par exemple j'ai deux noms de compte test1 et test1hjklm. Eh bien, lorsque je ferai un double clic sur test1, cela m'affichera les informations de test1hjklm. Je ne comprends pas pourquoi.

Merci de votre aide. :)
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#2
Salut
c'est parceque If account = Mid(ligne, 1, Len(account)) Then c'est en fait un split mais en low cost
essais ca :
Code:
Private Sub AccountsList_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles AccountsList.DoubleClick

        If Not AccountsList.SelectedItem = "" Then
            Dim account = AccountsList.SelectedItem
            TextCompte.Text = account 
            Dim reader As New StreamReader(Windows.Forms.Application.StartupPath & "\Data\Accounts.magic", True)
            While Not reader.EndOfStream
                dim ligne = reader.ReadLine
                dim Sligne() = ligne.Split(New Char() {"|"c})
                If account = Sligne(0) Then
                    TextPass.Text =Sligne(1)
                    exit while
                End If
            End While
            reader.Close()
        Else
            MsgBox("Vous n'avez pas sélectionné de compte !", MsgBoxStyle.Exclamation, "Veuillez sélectionner un compte !")
        End If

    End Sub
 
A

Anonymous

Invité
#3
ToOnS a dit:
Salut
c'est parceque If account = Mid(ligne, 1, Len(account)) Then c'est en fait un split mais en low cost
essais ca :
Ah génial, merci beaucoup pour ton aide ça fonctionne !

(par contre c'est plutôt dim Sligne As String() = ligne.Split(New Char() {"|"c}) si je ne m'abuse, non ? :) )

Encore merci ! :)
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#4
ca depand comment le projet est configuré , les 2 peuvent fonctionner mais sur le principe tu as raison , on est pas en autoit
 
A

Anonymous

Invité
#5
ToOnS a dit:
ca depand comment le projet est configuré , les 2 peuvent fonctionner mais sur le principe tu as raison , on est pas en autoit
Ah d'accord ! Je ne sais pas, je n'ai jamais appris l'autoit :oops:.

En tout cas merci bien car ça me tracassait. :)
 

ToOnS

Membre Actif
Inscrit
8 Avril 2009
Messages
974
Reactions
0
#6
:mrgreen:
 
Haut Bas