Je suis un programmeur débutant pour VB.netComment répéter la liste (de chaîne) après l'index de liste randomize hors de portée
donc je suis coincé dans ce code, cela est pour le générateur de nom aléatoire.
Private Function RandomLname(ByRef ranLname As String) As String
Dim reader As StreamReader = My.Computer.FileSystem.OpenTextFileReader("[pathto file.txt]", Encoding.Default)
Dim lines As New List(Of String)
Dim rnd As New Random()
Dim line As Integer
While reader.Peek <> -1
lines.Add(reader.ReadLine())
End While
line = rnd.Next(lines.Count + 1)
'the error shown in this line
ranLname = lines(line)
Return ranLname
reader.Close()
reader.Dispose()
End Function
Je continue à faire exception ArgumentOutOfRangeException après quelques terme, quelqu'un pourrait-il me aider? J'ai besoin du script pour lire la liste dès le début quand il atteindra la liste. Quelqu'un pourrait-il avoir une idée?
Toute aide serait appréciée.
'Essayez ligne = rnd.Next (lines.Count)'. – Enigmativity
Vous avez un défaut majeur dans votre code, car vous fermez le fichier texte après l'instruction 'Return', c'est-à-dire que vous ne le fermez pas du tout. Vous devriez l'ouvrir avec une instruction 'Using' et ensuite il sera fermé implicitement, indépendamment de la fin de la méthode. – jmcilhinney
J'ai déjà supprimé à la fois reader.Close() et reader.Dispose() mais il ne va pas ré-élever la liste. même quand je retire (+ 1) la liste ne produira pas de résultat après 60+ résultat écrit – Hyuichiro