2014-07-10 3 views
-1

VB.net에서 XML 파일로 직렬화해야하는 일부 텍스트 상자가 포함 된 양식을 만들었습니다.VB.NET 직렬화 및 저장

모두 괜찮습니다. 저장 부분입니다. 나는 누군가가 결제 애플 리케이션을 사용할 때마다 대체 될 하나의 파일을 생성하기 위해 streamwriter/reader를 얻을 수 있었지만 Savefile 대화 상자를 사용하여 다른 곳에 serialize 된 파일을 저장하고 싶었고 스트림을 사용하지 않고 openfile 대화 상자를 사용하여 파일을 열고 싶습니다. . 여기

코드입니다 :

'

Public Structure User 
    Public UserName As String 
    Public PassWord As String 
    Public StreetAddress As String 
    Public City As String 
    Public State As String 
    Public Zip As String 
End Structure 
Private Function CreateRecord() As User 
     Dim r As User 

     With r 
      .UserName = TextBox1.Text 
      .PassWord = TextBox2.Text 
      .StreetAddress = TextBox3.Text 
      .City = TextBox4.Text 
      .State = TextBox5.Text 
      .Zip = TextBox6.Text 
     End With 

     Return r 

    End Function 

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 

     Dim ser As New XmlSerializer(GetType(User)) 
     Dim fs As New FileStream("c:\userrecord.txt", FileMode.Create) 

     ser.Serialize(fs, CreateRecord()) 

     fs.Close() 


    End Sub 
Private Sub LoadIntoTB(ByVal rec As User) 

     With rec 
      TextBox1.Text = .UserName 
      TextBox2.Text = .PassWord 
      TextBox3.Text = .StreetAddress 
      TextBox4.Text = .City 
      TextBox5.Text = .State 
      TextBox6.Text = .Zip 
     End With 


    End Sub 

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click 
     Dim ser As New XmlSerializer(GetType(User)) 
     Dim fs As New FileStream("c:\userrecord.txt", FileMode.OpenOrCreate) 
     Dim rec As User 

     rec = DirectCast(ser.Deserialize(fs), User) 

     LoadIntoTB(rec) 
     fs.Close() 
    End Sub 

방법 파일 저장 대화 상자와 openfile 대화로하여 FileStream를 대체?

답변

0

FileStream 자체를 대체 할 수는 없습니다. 실제 파일을 작성하는 클래스입니다. 생성자에 전달 된 파일 이름 변수를 대체하려고합니다.

모든 열기 (및 저장) FileDialog는 사용자가 선택한 파일 경로에 문자열을 효과적으로 설정합니다. http://msdn.microsoft.com/en-us/library/system.windows.forms.openfiledialog%28v=vs.110%29.aspx http://msdn.microsoft.com/en-us/library/system.windows.forms.savefiledialog%28v=vs.110%29.aspx

:

당신이해야 할 모든 클래스를 선언하고 다음 문서는 여기에서 읽을 수 있습니다 .ShowDialog

를 호출 (예 : 파일 형식 등으로 당신이 그것을에 원하는 속성을 설정)입니다

코드를 사용하여 잘못된 속성이 아닙니다. http://www.vbforums.com/showthread.php?616479-How-do-I-save-multiple-textboxes-to-a-single-file-and-load-each-one-by-itself&p=4172754#post4172754