【问题标题】:How to save textbox data to file using FolderBrowsedialog如何使用 FolderBrowsedialog 将文本框数据保存到文件
【发布时间】:2015-06-07 17:05:58
【问题描述】:

我是 VB.NET 的新手。在下面的代码中,当我编译它时,当我检查 Select 单选按钮并浏览文件夹并单击 GENERATE HL7 Message 时出现错误“错误:表达式是一个值,因此不能作为分配的目标。”当我检查 Default 单选按钮时,它就像一个魅力。但是当我检查 Select 单选按钮时出现错误。我不知道我的代码有什么问题。您可以在以下 URL 中找到我的设计:[URL=http://s1065.photobucket.com/user/Izaz_Ahmed/media/Capture_zpst4jjgvxb.jpg.html]

Private Sub HL_Click(sender As Object, e As EventArgs) Handles HL.Click

        If vld(TxtProcode) = False Then
            Exit Sub
        End If

        Dim file As System.IO.StreamWriter
        Dim folderBrowser As New FolderBrowserDialog
        Dim fileDateTime As String = DateTime.Now.ToString("yyyyMMdd") & DateTime.Now.ToString("HHmmss") & ".HL7"
        Dim ts As String = DateTime.Now.ToString("yyyyMMdd") & DateTime.Now.ToString("HHmmss")
        'file = My.Computer.FileSystem.OpenTextFileWriter("C:\pdata\New folder\" & fileDateTime, True)
        folderBrowser.ShowNewFolderButton = True
        If RadioBtndefault.Checked Then
            TxtDob.Format = DateTimePickerFormat.Custom
            TxtDob.CustomFormat = "yyyyMMdd"
            TxtExamtime.Format = DateTimePickerFormat.Custom
            TxtExamtime.CustomFormat = "hhMMss"
            TxtExamdate.Format = DateTimePickerFormat.Custom
            TxtExamdate.CustomFormat = "yyyyMMdd"
            file = My.Computer.FileSystem.OpenTextFileWriter("C:\pdata\New folder\" & fileDateTime, True)
            file.WriteLine("MSH|^~\&|||||" & TxtExamdate.Text & "" & TxtExamtime.Text & "||ORM^O01||P|2.3.1")
            file.WriteLine("PID|||" & TxtId.Text & "||" & TxtFamilyname.Text & "^" & TxtGivenname.Text & "||" & TxtDob.Text & "||" & TxtGender.Text & "|||" & TxtStreet.Text & " " & TxtHouse.Text & "^^" & TxtCity.Text & "^^" & TxtPostcode.Text)
            file.WriteLine("PV1||O|||||||||||||||||" & TxtId.Text & "|||||||||||||||||||||||||" & ts)
            file.WriteLine("ORC|NW|" & ts & "|||||^^^S||" & TxtExamdate.Text)
            file.WriteLine("OBR||" & ts & "^" & ts & "||" & TxtProcode.Text & "|||" & TxtExamdate.Text & "" & TxtExamtime.Text & "|" & TxtExamdate.Text & "" & TxtExamtime.Text)
            file.WriteLine()
            file.Close()
        End If

        If RadioBtnselect.Checked Then
            If folderBrowser.ShowDialog() = DialogResult.OK Then
                file.WriteLine = folderBrowser.SelectedPath
                file.WriteLine("MSH|^~\&|||||" & TxtExamdate.Text & "" & TxtExamtime.Text & "||ORM^O01||P|2.3.1")
                file.WriteLine("PID|||" & TxtId.Text & "||" & TxtFamilyname.Text & "^" & TxtGivenname.Text & "||" & TxtDob.Text & "||" & TxtGender.Text & "|||" & TxtStreet.Text & " " & TxtHouse.Text & "^^" & TxtCity.Text & "^^" & TxtPostcode.Text)
                file.WriteLine("PV1||O|||||||||||||||||" & TxtId.Text & "|||||||||||||||||||||||||" & ts)
                file.WriteLine("ORC|NW|" & ts & "|||||^^^S||" & TxtExamdate.Text)
                file.WriteLine("OBR||" & ts & "^" & ts & "||" & TxtProcode.Text & "|||" & TxtExamdate.Text & "" & TxtExamtime.Text & "|" & TxtExamdate.Text & "" & TxtExamtime.Text)
                file.WriteLine()
                file.Close()
                Dim root As Environment.SpecialFolder = folderBrowser.RootFolder
            End If
        End If
End Class

【问题讨论】:

    标签: vb.net folderbrowserdialog


    【解决方案1】:

    确切的错误信息是由这一行引起的

     file.WriteLine = folderBrowser.SelectedPath
    

    WriteLine 是方法而不是属性。语法应该是 WriteLine(....)。

    在任何情况下,您的代码都会失败,因为在 Select 案例中使用的 StreamWriter 没有像在第一个案例中那样正确初始化。
    您需要这样的东西,将 SelectedPath 与您的预期文件名结合起来

    If RadioBtnselect.Checked Then
        If folderBrowser.ShowDialog() = DialogResult.OK Then
            Dim destFile = Path.Combine(folderBrowser.SelectedPath,fileDateTime)
            file = My.Computer.FileSystem.OpenTextFileWriter(destFile,True)      
            file.WriteLine(.....)
            .....
    

    【讨论】:

    • 当实现这个时,得到一个错误为“错误:重载解析失败,因为没有可访问的'OpenTextFileWriter'接受这个数量的参数。
    • 正确忘记第二个参数,它可以是布尔值 True 将文本附加到现有文件或布尔值 False 用新数据覆盖现有文件。根据您的第一个块,我使用 True 追加
    【解决方案2】:

    看看你的第二个条件,RadioBtnselect 语句。你永远不会告诉StreamWriter 路径,因此你的错误。你确实在你的第一个 if 中给了它一条路径,但在第二个中没有。

    例如:

    file = My.Computer.FileSystem.OpenTextFileWriter("C:\pdata\New folder\" & fileDateTime, True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 2013-09-01
      • 1970-01-01
      • 2021-08-18
      相关资源
      最近更新 更多