2013-09-27 64 views
0

這是我的代碼,我想讀取我的TestFile.txt文件並將其顯示在txt2.Text中,但此代碼不讀取我的txt文件。任何人都可以幫我解決這個問題?由於爲什麼我的StringReader在vb.net中沒有讀取我的txt文件?

Dim MyFileName As String = "C:\Users\TestFile.txt" 
Dim Line As String = "" 
Dim sb As New StringBuilder 
Using sr As New StringReader(MyFileName) 
Line = sr.ReadLine 
    Do      
     If Line = "*" Then 
     Line = sr.ReadLine 
     Do        
      sb.Append(LineRead)   
      Line = sr.ReadLine 
     Loop Until Line = "**"  
    End If 
     Line = sr.ReadLine   
Loop Until Line = ""    
End Using 
Line = txt2.Text 

回答

1

你不追加LineStringBuilder,但LineRead,這是不是在你的代碼中設置。

您的代碼應閱讀:

Line = sr.ReadLine 
Do        
    sb.Append(Line)   
    Line = sr.ReadLine 
Loop Until Line = "**" 

在我被告知,從我的答案刪除以下位的評論:

真正的問題是編程語言,唐在你使用它們之前,不要強迫你聲明變量。你總得愛VB.NET ...

我想引用MSDN這裏:

默認情況下,Visual Basic .NET或Visual Basic編譯器強制執行明確的變量聲明,這就要求您在使用它之前先聲明每個變量。要更改此默認行爲,請參閱更改默認項目值部分。

所以,雖然在默認情況下該評論是正確的,你可以改變的行爲,並沒有什麼問題告訴我的OP沒有改變它。儘管如此,我還是會更加精確地將我的陳述改爲:

真正的問題是編程語言,它允許您在使用它們之前先聲明變量。你必須愛VB.NET ...

+0

「真正的問題是不強迫你聲明變量的編程語言」 - > VB.NET(即使帶有Option String Off)也會強制你聲明變量。如果「LineRead」沒有被聲明,OP的代碼就不會編譯。請糾正這一點。什麼VB.NET允許(哪些C#不)不是實例化變量(因爲默認值);例如,編寫這樣的代碼就足夠了:'Dim lineRead As String'(並且VB.NET會認爲'lineRead'是'Nothing')。 – varocarbas

+0

(我猜我是評論者)我從來沒有見過任何人使用'Option Explicit Off',但你是對的:該選項存在。我的評論的原因是強調你的原始聲明更多的是一個沒有(真實/實際)動機而不是準確猜測的通用評論。寫作「是在上面寫的」Option Explicit Off「作爲旁註釋/ PS(只是爲了完全確定)聽起來比從頭開始假設'LineRead'沒有被聲明並且這是正常的VB行爲。 「真正的問題是使用Option Explicit Off ......」聽起來更準確。 – varocarbas

+0

你是對的。我只是不想放棄我的Visual Basic Rant :-) –

1

StringReader只是讓你從字符串讀取,它不讀取或打開文件。

使用StreamReader從文件讀取。

Dim filename As String = "C:\Users\TestFile.txt" 
    Dim Line As String = "" 
    Dim sb As New StringBuilder 
    Using sr As StreamReader = File.OpenText(filename) 
    Line = sr.ReadLine 
    Do      
     If Line = "*" Then 
     Line = sr.ReadLine 
     Do        
      sb.Append(Line) ' you probably meant Line, not LineRead  
      Line = sr.ReadLine 
     Loop Until Line = "**"  
    End If 
     Line = sr.ReadLine   
    Loop Until Line = "" 
    End Using 
+0

然後在哪裏顯示我的閱讀文本? – Husna5207

+0

ok2非常感謝。祝你今天愉快 :) – Husna5207

相關問題