2012-02-07 80 views
1

我試圖解析一個文本文件。首先,我計劃對每一行進行摘錄,然後通過搜索一個tasb來提取每個字段。用VB.Net解析製表符分隔文本文件

當我使用InStr以sercah作爲\ r(返回行尾)或\ t(對於tab)時,我總是得到一個零。但是如果我輸入一個可見的字母,例如我得到了一個5. 也我試過/ r,/ n和\ n都返回一個零。 文件如下所示:

 
ID Name 
1 Patient 
2 Bed 
3 PatientSet 
4 BedSet 
5 TriggerSet 
6 Triggering 
7 Panel 

代碼

fileReader = My.Computer.FileSystem.ReadAllText("D:\BW\bwdatabase\ContextType.txt") 
    MsgBox(fileReader) 

    Str = fileReader 
    i = InStr(Str, "\r") // i uis zero 
    l = Mid(Str, 0, i - 1) // so this crashes becouse index is -1 
    MsgBo 
+1

您使用的是什麼版本的Visual Studio/VB?如果您有權訪問2010並且可以使用迭代器塊,它會對我的響應產生巨大影響。 – 2012-02-08 03:28:04

回答

1

「\ r」 在VB中不起作用。對於\ r,使用vbCr;對於\ n,請使用vbLf。

5

調查使用Microsoft.VisualBasic.FileIO.TextFieldParser類。它會爲你做所有的繁重工作。

+1

+1。 [MSDN演練](http://msdn.microsoft.com/en-us/library/cakac7e6.aspx)顯示如何讀取CSV,只需將分隔符從逗號更改爲選項卡即可。在VB中使用常量vbTab作爲製表符。你不能在VB中的字符串中使用\ t – MarkJ 2012-02-08 08:11:29

相關問題