2014-05-12 6 views
0

나는 그것은 단지 목록보기의 첫 번째 행을로드 그러나, 나는 그것을 읽는 얻는 방법 TEXTFILE에서 모든 행을로드하고 목록보기목록보기 멀티 라인

에이를 표시해야하는 텍스트 파일을로드하는 프로그램을 만들어 전체 파일?

Sub Loadbtn_Click(sender As System.Object, e As System.EventArgs) Handles Browse.Click 
    OpenFD.ShowDialog() 
    Dim Path As String = OpenFD.FileName 
    Dim AllItems As String 
    Try 
     AllItems = My.Computer.FileSystem.ReadAllText(Path) 
     Dim ItemLines As New TextBox 
     ItemLines.Text = AllItems 
     Dim lv As New ListViewItem 
     For Each Line As String In ItemLines.Lines 
      List.Items.Add(lv) 
      lv.Text = Line 
      lv.SubItems.Add(Crypto.AES_Decrypt(Line)) 
     Next 
    Catch ex As Exception 
    End Try 
End Sub 
+0

추가 할 각 행마다 새로운 lvi가 필요합니다. 그리고 빈 캐치 좋은 생각이 아니야, 당신은 단지 어떤 오류를 먹고 있습니다. – Plutonix

+0

어쩌면 바보 같지만 꽤 새로운 것 같습니다 ... 모든 라인이 추가 될 때까지 더 많은 라인을 추가하는 곳으로 끝없는 반복을 가지려면 어떻게해야합니까? 나는 이것을 매우 정직하게 만들었던 것은 꽤 행운이 있다고 느낀다. – user3598883

+0

나는 그것을 인정하는 것을 싫어하지만 계속하기 위해 루프에 넣으 려 노력하고있다. 반복하면서 이것을 반복하거나 vbnewline을 추가하려고 시도하지만, 나는 아무것도하지 않는 코드를 깨뜨리는 것 같다. 지금 당장이 문제를 어떻게 해결할 수 있는지 생각 해봐. 또한 어쩌면 내가 "OpenFD.path"에 "Textbox"와 같은 작품이 왜 표시되는지, 아니면 표시 할 파일의 내용을 읽는 지 알 수없는 이상한 작업을하는 코드의 다른 수식을 변경하려고 시도했을 것입니다. 솔직히 나는 심지어 내 itemlines.text가 무엇인지 알지 못한다. 나는 단지 그것이 작동 하는지를 알 수있는 텍스트 박스를 가지고 있지 않다. ReadAllText가 아니라 – user3598883

답변

1

한 가지 가능한 솔루션은 다음과 같이 수 :

Sub Loadbtn_Click(sender As System.Object, e As System.EventArgs) Handles Browse.Click 
    OpenFD.ShowDialog() 
    ' full path to the file + name 
    Dim filename As String = OpenFD.FileName 
    Try 
     ' check if file exists to prevent errors 
     if (File.Exists(filename)) then 
      ' fetch complete text into as lines 
      Dim Lines = File.ReadAllLines(filename) 
      ' iterate over each line 
      For Each Line As String In Lines 
       Dim lv as new ListViewItem 
       ' take it 
       lv.Text = Line 
       ' and use it 
       lv.SubItems.Add(Crypto.AES_Decrypt(Line)) 
       ' show it 
       List.Items.Add(lv) 
      Next 
     end if 
    Catch ex As Exception 
     ' inform the user resp. developer 
     Console.WriteLine(String.Format("An error occurred: {0}", ex.Message)) 
    End Try 
End Sub 

이미 언급했듯이 사용 File.ReadAllLines 당신이 라인으로 파일 라인을 읽을 수 및 오류를 억제하지 않는 경우 - 적어도 사용자 또는 통보 개발자 (자신, 로그 파일 또는 적절한 것을 사용).