2014-08-27 20 views
1

.txt 파일을 읽고 쓰는 간단한 프로그램을 만들고 있습니다. 나는 .txt 파일을 읽고 쓰는 프로그램을 가지고있다. 그러나 나는 .txt 파일을 읽는데 문제가있다. 여기에 지금까지있어 무엇 :vb.net .txt 파일에서 읽기 및 내용 표시

텍스트가 다른 형태 (displayForm) 내부에 존재하는 목록 상자에 채워 읽은 경우입니다 내가 어떻게하고 싶은
Using openTxt As New OpenFileDialog() 
    If openTxt.ShowDialog() = Windows.Forms.DialogResult.OK Then 
     Dim displayForm As New Form 
     Dim textReader As New System.IO.StreamReader(openTxt.FileName) 
     displayForm.ListBox1.Text = textReader.ReadToEnd 
     textReader.Close() 
     displayForm.Show() 
    Else 
     MessageBox.Show("Not a text file") 
    End If 
End Using 

. 같은 양식에있는 목록 상자에 텍스트를 표시하여 텍스트가 변경되었지만 여전히 공백으로 남아 있는지 확인하려고했습니다. 이 단계에서 오류를 검사하지 않았으므로 .txt 파일로만 테스트했음을 확인할 수 있습니다. 어떤 도움을 많이 주셔서 감사합니다!

답변

4

ListBox은 텍스트를 표시하는 것이 아니라 목록을 표시하는 것입니다 (이름에서 알 수 있듯이). 텍스트를 표시하려면 TextBox을 사용하십시오. 파일에 여러 줄이 포함될 가능성이 높으므로 속성을 True으로 설정하여 TextBox이 올바르게 표시되도록 할 수 있습니다. Streams

Dim content As String = "" 
Using textReader As New System.IO.StreamReader(openTxt.FileName) 
    content = textReader.ReadToEnd 
End Using 
displayForm.ListBox1.Text = content 

를 처리 할 때

또한, 당신은 using statement를 사용해야하거나 단순히 System.IO.File.ReadAllText("path to file here") 명령을 사용합니다.

+0

은, 대단히 감사합니다 내가 좋아했을 때와 똑같이 작동했습니다. – Novastorm

0

파일을 한 줄씩 읽고 목록 상자 컨트롤을 채우시겠습니까?

그 경우는이 함수를

Function ReadFile(ByVal Filename As String) As String() 
    Dim Sl As New List(Of String) 
    Using Sr As New StreamReader(Filename) 
     While Sr.Peek >= 0 
      Sl.Add(Sr.ReadLine()) 
     End While 
    End Using 
    Return Sl.ToArray 
End Function 

을 시도 그래서 같은 사용의 경우 : 그냥 텍스트 상자와 목록 상자를 교환하고 사용하는 부분을 변경 한

For Each Line As String In ReadFile("FILENAME.txt") 
     ListBox1.Items.Add(Line) 
    Next