2011-08-30 145 views
0

通过实例分开后,我有这个内容的.txt文件:C#从文本文件获取数据用分号

Hello;Test;StackOverflow;I live here 
Hi;NoTest;StackOverflow;I don't live here 

等..

现在我想读txtfile,则但我不想读取“整个”行或 everthing ..只对下一个分号..直到一行的末尾..

一个StringVariable为一个Word在txtFile中,但只是一行..

我怎么能做到这一点?

+0

为什么你不想读一整行?线路是否过长?即数百兆字节? –

+0

那么你总是必须阅读/搜索分号。那么为什么不读整行然后拆分呢? – RvdK

回答

5

您可以通过线这样的阅读文本行:

var streamReader = new StreamReader(new FileStream("c:\\file.txt")); 
var line = streamReader.ReadLine(); 

var values = line.Split(';'); 

,然后读取线像这样的任何值:

var value = values[2]; 

如果你想要遍历throught这些值可以使它是这样的:

var streamReader = new StreamReader(new FileStream("c:\\file.txt")); 

while(!streamReader.EndOfStream) 
{ 
    var line = streamReader.ReadLine() 
    var values = line.Split(';'); 
    for(var i = 0; i < line.Length; i++) 
     Console.WriteLine(values[i]); //example usage 
} 

streamReader.Dispose(); 
+0

谢谢4答案,我会试试看!如果它有效,我会将答案标记为已回答 – eMi

+0

我从头后面写了这段代码,所以如果有东西不能编译,请让我知道。 –

+0

那里有几个小问题 - 你的for循环是递增'line',而不是'i',并且'Lenght'上有一个错字。另外,我建议在StreamReader周围使用'using',以便它自动处理,并且我相信检查'streamReader.EndOfStream'是检查文件结尾是否稍好的方法。 –