StreamReader - Lecture à partir de lignes
J'ai le code suivant;
Public Sub writetofile()
' 1: Append playername
Using writer As StreamWriter = New StreamWriter("highscores.txt", True)
writer.WriteLine(PlayerName)
End Using
' 2: Append score
Using writer As StreamWriter = New StreamWriter("highscores.txt", True)
writer.WriteLine(Score)
End Using
End Sub
Ce que je veux faire est de lire toutes les lignes impaires du fichier (le nom des joueurs) et les lignes paires séparément dans deux zones de liste, comment pourrais-je aller à ce sujet??
J'ai besoin de les modifier;
Using reader As StreamReader = New StreamReader("file.txt")
' Read one line from file
line = reader.ReadLine
End Using
J'ai utilisé l'une des solutions suivantes, mais ne peut pas le faire fonctionner 🙁
Public Sub readfromfile()
Using reader As New StreamReader("scores.txt", True)
Dim line As Integer = 0
While Not reader.EndOfStream
If line Mod 2 = 0 Then
frmHighScores.lstScore.Items.Add(line)
Else
frmHighScores.lstScore.Items.Add(line)
End If
line += 1
End While
End Using
End Sub
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
Mod
opérateur:Cette approche fonctionne aussi pour les cas où il n'est pas un pair/impair modèle, mais un autre numéro de repetions. Disons que vous disposez de 3 lignes pour chaque joueur:
Alors vous pouvez vous procurer ce modèle à l'aide de
Mod
avec 3Si fiable qu'il y ait un nombre pair de lignes dans le fichier, alors vous pouvez simplifier ce, par la lecture des deux à la fois.
Je ne sais pas vraiment la syntaxe de VB, mais quelque chose comme ceci:
Une autre possibilité est de se contenter de lire l'intégralité du fichier comme un bloc dans une seule chaîne, et la séparation de la chaîne sur vbcrlf
Puis, lignes contient toutes les lignes du fichier indexé.
De sorte que vous ne pouvait pas marcher à travers eux pour obtenir chaque joueur et de ses autres info.
Si le fichier a été ÉNORME, vous ne pouvez pas forcément envie de faire de cette façon, mais pour les petits fichiers, c'est un moyen facile et rapide de le gérer.