Je veux écrire des données dans un fichier, donc j'utiliser l'objet SaveFileDialog
:Comment ajouter des données à fichier à l'aide SaveFileDialog
Public Class Form3
Inherits Form
Public callerForm3To1 As Form1
Dim fileStream As Stream = Nothing
Dim fileSW As StreamWriter = Nothing
Private Sub Form3_Load(sender As Object, e As EventArgs) Handles MyBase.Load
SaveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
SaveFileDialog1.FilterIndex = 2
SaveFileDialog1.RestoreDirectory = True
FlagWriteToFile = False
If SaveFileDialog1.ShowDialog() = DialogResult.OK Then
Btn_writeData.Enabled = True
End If
End Sub
'some code
End Class
Et après que j'écrire des données dans ce fichier ouvert:
Sub WriteDataToText(data As Long(), appendData As Boolean)
'Dim a As New StreamWriter(SaveFileDialog1.OpenFile(), FileMode.Append) ' ERROR!
fileSW = New StreamWriter(SaveFileDialog1.OpenFile())
If (fileSW IsNot Nothing) Then
fileSW.WriteLine(String.Join(" ", data) + Environment.NewLine)
fileSW.Close()
End If
End Sub
Ce que je veux: parfois j'ai besoin d'ajouter des données à ce fichier, et parfois écraser. Je crée appendData
pour cela: si 1
puis ajouter si 0
puis remplacer. Je sais que je peux créer StreamWriter
pour le fichier et utiliser FileMode
pour mes fins. Mais si j'utilise SaveFileDialog
c'est la méthode OpenFile
renvoie Stream
! Et je ne peux pas créer StreamWriter Constructor (il faut String non Stream).
Comment ajouter des données à un fichier en utilisant SaveFileDialog
?
Convertir le flux en une chaîne en utilisant StreamReader.ReadToEnd – Benno
@Benno pouvez-vous me montrer un exemple plus détaillé? J'ai essayé celui-ci: 'sr Dim comme nouveau StreamReader (SaveFileDialog1.OpenFile) fileSW = Nouveau StreamWriter (sr.ReadToEnd, FileMode.Append)' mais a obtenu l'erreur: nom de chemin vide n'est pas légal. –