J'écris un programme où l'utilisateur recevra un score et un nom, et les deux doivent être sauvegardés en mémoire, puis être affichés dans une liste. Exemple: Peter Paul 2000Visual Basic - Ne pas écraser un fichier texte
Dans cet esprit, les données ne peuvent pas être écrasées. Exemple: Peter Paul 2000 Peter John 195 Peter Jack 2301 Peter Meilleur 7841
Et puis affiché de plus récent au plus.
Des idées?
actuel Coded utilisé dans le programme pour écrire et lire le fichier:
Private Sub OpenButton_Click(sender As Object, e As EventArgs) Handles OpenButton.Click
Dim CountInteger As Integer
Dim InStreamReader As New StreamReader("LeaderBoard.txt", False)
ScoreListBox.Items.Clear()
Do Until InStreamReader.Peek = -1
InStreamReader.ReadLine()
CountInteger += 1
Loop
InStreamReader.Close()
CountInteger -= 1 'need ubound not size
Dim InNewStreamReader As New StreamReader("LeaderBoard.txt", False)
Dim DataArray(CountInteger) As String
For i As Integer = 0 To UBound(DataArray)
DataArray(i) = InNewStreamReader.ReadLine()
ScoreListBox.Items.Add(DataArray(i))
Next
InNewStreamReader.Close()
End Sub
Private Sub SaveButton_Click(sender As Object, e As EventArgs) Handles SaveButton.Click
Dim ResultDialogResult As DialogResult
Dim LineString As String
Dim InStreamReader As StreamReader
Dim OutStreamWriter As StreamWriter
With SaveFileDialog1
.InitialDirectory = Application.StartupPath
ResultDialogResult = .ShowDialog
If ResultDialogResult = Windows.Forms.DialogResult.Cancel Then
Exit Sub
End If
OutStreamWriter = New StreamWriter(.FileName)
End With
With OpenFileDialog1
.DefaultExt = "txt"
.Filter = "Text documents (*.txt)|*.txt"
ResultDialogResult = .ShowDialog
InStreamReader = New StreamReader(.FileName)
Do Until InStreamReader.Peek = -1
LineString = InStreamReader.ReadLine
OutStreamWriter.WriteLine(LineString)
Loop
InStreamReader.Close()
OutStreamWriter.Close()
End With
End Sub
Je suppose que vous devez tamponner l'ancien contenu dans votre programme –
Vous pourriez trouver ['File.ReadAllLines'] (http://msdn.microsoft.com/en-us/library/system.io.file.readalllines.aspx) plus utile que d'ouvrir le fichier * deux fois * et itérer manuellement à travers elle. –
@Damien_The_Unbeliever Vous voulez donner un exemple avec mon code? – peterbest69