2014-11-23 3 views
0

내 응용 프로그램의 설정 양식의 일부로 VB.NET의 텍스트 파일에서 확인란을로드하려고 시도했습니다.Vb.net 확인란이 텍스트 파일에서로드되지 않습니다

Sub loadfiles() 
    Dim read As System.IO.StreamReader 

    read = My.Computer.FileSystem.OpenTextFileReader("C:\Users\Public\Documents\procrastinGONEnotif.txt") 
    Dim text As String = read.ReadToEnd() 
    read.Close() 
    If text = "false" Then 
     CheckBox1.Checked = False 
    Else 
     If text = "true" Then 
      CheckBox1.Checked = True 
     Else 
      MessageBox.Show("ERROR!") 
     End If 
    End If 
End Sub 

파일 저장 코드는 바로 여기에 있습니다 : :

Dim write As System.IO.StreamWriter 
write = My.Computer.FileSystem.OpenTextFileWriter("C:\Users\Public\Documents\procrastinGONEnotif.txt", False) 
If CheckBox1.Checked = True Then 
    write.WriteLine("true") 
Else 
    write.WriteLine("false") 
End If 
write.Close() 

파일이 때 형태로 시작을로드하고 나는 버튼을 누르면 저장하도록되어 나는이 코드 조각을 사용했다. 그러나 폼이 존재하고 "true"또는 "false"가 포함 된 경우에도 파일을로드하지 않습니다. 대신 코드는이를 "true 또는 false"로 감지하고 "ERROR!"메시지를 보냅니다. 실제로 응용 프로그램에 파일을 읽었는지 테스트하기 위해 추가했습니다.

+2

중단 점 및 디버그를 설정 저장을 위해; 또한 설정이 하나뿐이라면 'MySettings'을 살펴보십시오. – Plutonix

답변

0

false 값을 읽거나 쓸 때 문제가 발생합니다. 출력 파일에 false 뒤에 개행 문자가 있습니다.이 문자는 텍스트 파일을 열거 나 처음에 text으로 읽을 때 볼 수 있습니다. 이것에 대한 간단한 해결책은 단순히 여분의 공백 문자를 제거하기 위해 read.ReadToEnd().Trim()을 사용하는 것입니다.

내복 If...ElseIf...ElseIf...Else에 결합하면 코드를 혼동을 덜 일으킬 수 있습니다.

Sub loadfiles() 
    Dim read As System.IO.StreamReader 
    read = My.Computer.FileSystem.OpenTextFileReader("C:\Users\Public\Documents\procrastinGONEnotif.txt") 
    Dim text As String = read.ReadToEnd().Trim() 
    read.Close() 
    If text = "false" Then 
     CheckBox1.Checked = False 
    ElseIf text = "true" Then 
     CheckBox1.Checked = True 
    Else 
     MessageBox.Show("ERROR!") 
    End If 
End Sub 
0

당신은 로딩이

에 전체 코드를 단축 할 수 있습니다

CheckBox1.Checked = Convert.ToBoolean(System.IO.File.ReadAllText("FILE_PATH")) 

IO.File.WriteAllText("FILE_PATH", Convert.ToString(CheckBox1.Checked)) 
관련 문제