我有一个主要问题,我无法解决。我正在使用OpenFileDialog
选择一个.csv:
OpenFileDialog1.Title = "Please select a csv file"
OpenFileDialog1.InitialDirectory = "C:\"
OpenFileDialog1.Filter = "csv|*.csv"
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
Timer1.Start()
End If
Timer1
基本上只是开始一个将信息从csv转换为数据网格的过程。因此,我接下来要做的就是用其他字符替换csv中的字符并自定义保存。但是我找不到明确的解决方案。使用File.IO,我需要输入一个特定的路径-我不需要这个,我想在文件对话框中选择一个特定的文件。
我尝试使用StreamWriter,但无法真正替换和搜索它。我想念什么?有没有人对这个问题有好的解决方案?
答案 0 :(得分:0)
您始终需要以某种方式将信息传递给您的过程。 但是,无需计时器即可轻松完成:
OpenFileDialog1.Title = "Please select a csv file"
OpenFileDialog1.InitialDirectory = "C:\"
OpenFileDialog1.Filter = "csv|*.csv"
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
Dim Content as string = File.ReadAllText(OpenFileDialog1.Filename)
Content = Content.Replace("CharacterOld", "CharacterNew")
File.WriteAllText(OpenFileDialog1.Filename, Content)
End If
我还建议您不要在过程中使用计时器,除非它要求每隔一段时间检查一次数据。如果您希望它具有多线程功能,那么我建议您调查.Net Tasks。
OpenFileDialog1.Title = "Please select a csv file"
OpenFileDialog1.InitialDirectory = "C:\"
OpenFileDialog1.Filter = "csv|*.csv"
If OpenFileDialog1.ShowDialog() = DialogResult.OK Then
Task.Run(
Sub(Filepath As String)
Dim Content As String = File.ReadAllText(Filepath)
Content = Content.Replace("CharacterOld", "CharacterNew")
File.WriteAllText(Filepath, Content)
End Sub, OpenFileDialog1.Filename)
End If