2012-02-07 160 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

相关问题