2016-01-20 15 views
-1

我想從一個文本文件閱讀只有那些與字母開頭的行A-Z vb.net與字母開始只讀線A-Z vb.net

目前我使用ReadToEnd的。

的FileReader =新的StreamReader(OpenFile.FileName)

 Dim fileread1 As String = fileReader.ReadToEnd 

     'For i = 0 To linesarray1.GetUpperBound(0) 
     ' If linesarray1(i).StartsWith("a-z") Then 
     '  r_text_file2.AppendText(Environment.NewLine & linesarray1(i)) 
     ' End If 
     'Next 

但不工作

+0

你能詳細說明「不工作」是什麼意思嗎? – DeanOC

回答

0

您可以使用此。

For i = 0 To linesarray1.GetUpperBound(0) 
    If Char.IsLetter(linesarray1(i).substring(0,1)) Then 
     r_text_file2.AppendText(Environment.NewLine & linesarray1(i)) 
    End If 
Next 

有了這個,你可以檢查第一個位置是否是Letter。

如果你使用這個,你應該首先檢查你的sting長度是否大於0以防止異常。

編輯:

如果您想檢查字符串不以「P」開始改變,如果到:

If Char.IsLetter(linesarray1(i).substring(0,1)) And not linesarray1(i).substring(0,1) = "p" Then 
... 
+0

你真的很棒Nik Bo。它爲我工作,因爲我想要的。我用它作爲 對於i = 0到linesarray1.GetUpperBound(0) 如果linesarray1(ⅰ)。長度> 1然後 如果Char.IsLetter(linesarray1(ⅰ).Substring(0,1))。然後 r_text_file2 .AppendText(Environment.NewLine&linesarray1(i)) End If End If Next –

+0

很高興聽到這種幫助。 –

+0

您是否可以確認我是否忽略只以字母「p」開頭的字符串 –

0

您發佈僅會讀取線的樣品,他們開始以實際字符串「AZ

我想你應該尋找是System.Char.IsLetter(linesarray1(i)(0))

但在調用上述方法之前還要檢查空字符串和空字符串。

編輯:

參閱MSDN文檔IsLetter這裏:https://msdn.microsoft.com/en-us/library/system.char.isletter%28v=vs.110%29.aspx

此外,如果情況很重要,Char類有IsUpperIsLower方法也。

+0

不,我需要讀取以onlt字母開頭的行 –

+0

是的,我明白這一點。見上面,我建議IsLetter方法。如果需要,您可以同樣檢查小寫字母。請參閱幫助鏈接https://msdn.microsoft.com/en-us/library/system.char.isletter%28v=vs.110%29.aspx – MaLio