2013-03-14 4 views
3

나는 이미 MSDN Example을 보았지만 여전히 문제가 있습니다.SaveFileDialog를 사용하여 데이터를 텍스트 타일에 저장 하시겠습니까?

두 개의 숫자를 곱하고 텍스트 상자에 출력을 표시하는 슈퍼 간단한 프로그램을 만들었습니다. 이제 텍스트 상자 값을 읽고 텍스트 파일에 값을 저장하여 "파일에 저장"단추를 클릭하면 파일 저장 대화 상자를 불러올 수 있어야합니다.

Private Sub MutiplyBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MutiplyBtn.Click 
    Dim FirstNum As Double = Num1.Text 
    Dim SecondNum As Double = Num2.Text 
    Dim Answer2 As Double = FirstNum * SecondNum 
    Answerbox.Text = Answer2 
End Sub 

Private Sub SaveResultToFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveResultToFile.Click 
    Dim myStream As Stream 
    Dim saveFileDialog1 As New SaveFileDialog() 

    saveFileDialog1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*" 
    saveFileDialog1.FilterIndex = 2 
    saveFileDialog1.RestoreDirectory = True 

    If saveFileDialog1.ShowDialog() = DialogResult.OK Then 
     myStream = saveFileDialog1.OpenFile() 
     If (myStream IsNot Nothing) Then 
      System.IO.File.WriteAllText(Answerbox.Text) 
      myStream.Close() 
     End If 
    End If 
End Sub 

현재 비주얼 스튜디오 나에게 오류를주고있다 : Overload resolution failed because no accessible 'WriteAllText' accepts this number of arguments.

답변

4

WriteAllText 정적 방법은 데이터가 기록되어야하는 파일의 이름이 필요합니다.
당신은 코드는 예입니다

If saveFileDialog1.ShowDialog() = DialogResult.OK Then 
    System.IO.File.WriteAllText(saveFiledialog1.FileName, Answerbox.Text) 
End If 

대신 당신이 정말로 OpenFile에 의해 열린 스트림을 사용하려는 경우 saveFileDialog1에서 선택한 이름은() 메소드 코드가

If saveFileDialog1.ShowDialog() = DialogResult.OK Then 
     Dim sw As StreamWriter = new StreamWriter(saveFileDialog1.OpenFile()) 
     If (sw IsNot Nothing) Then 
      sw.WriteLine(Answerbox.Text) 
      sw.Close() 
     End If 
    End If 

해야한다 직접 사용할 수 있습니다 당신은 .... 나는 방법 위에 시도하지만이 방법으로 성공

+0

고맙습니다. 고쳐 준 것 같습니다. – Matt

+0

Steve, 완벽하게 작동하지만 항상 데이터를 덮어 씁니다. 파일 끝에 텍스트를 추가하는 방법은 무엇입니까? –

+0

@Mikhail_Sam [File.AppendAllText] (https://msdn.microsoft.com/en-us/library/ms143356(v=vs.110).aspx) – Steve

0

안녕을 처리 오류의 비트를 추가 할 필요가

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    SaveFileDialog1.Filter = "TXT Files (*.txt*)|*.txt" 
     If SaveFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK _ 
     Then 
     My.Computer.FileSystem.WriteAllText _ 
     (SaveFileDialog1.FileName, RichTextBox1.Text, True) 
     End If 
End Sub 
관련 문제