VB替换附加的CSV中的字符

时间:2018-11-12 14:33:26

标签: vb.net

我有一个主要问题,我无法解决。我正在使用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,但无法真正替换和搜索它。我想念什么?有没有人对这个问题有好的解决方案?

1 个答案:

答案 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