2014-01-12 64 views
-1

IM試圖在C#中的引擎來閱讀我的文本文件 此的部分是文本文件讀取線和C#中刪除線的一部分

ver:14 
D:\\demopath 
2013-07-26 10:18a     53 config.ini 
2013-09-16 10:28a    7289119 data.res 
2010-03-25 01:49a    41472 Dsetup.dll 
2013-09-15 11:41p    7094272 demo.exe 
2013-06-14 10:41P    4454454 lib\filetest.txt 

,我也想的一部分發動機跳過第2行只能由Selman22

獲得與文件的線部分,並顯示在CMD控制檯,但它不能每次我只得到了整個行,​​而不是文件

int counter = 0; 
StreamReader file = new StreamReader("test.txt"); 
while ((line = file.ReadLine()) != null) 
{ 
    if (line == "ver:11") 
    { 
     counter = counter + 2; 
    } 
    else 
    { 
     Console.WriteLine(line); 
     counter++; 
    } 
} 
file.Close(); 

感謝

現在

var lines = File.ReadAllLines("test.txt").Skip(2).ToList(); 
foreach(var line in lines) 
    Console.WriteLine(line); 
+1

你能想出實際的和預期的結果,你還試過了什麼? – ssilas777

+0

如果您使用'dir'生成該文件,請嘗試使用'dir/b'。 – Blorgbeard

+0

我忘了添加源代碼部分,我還需要日期和時間來檢查文件日期和時間,因爲它是一個自動修補程序 – Deathslayer

回答

0

您可以使用File.ReadAllLines這樣的:

var lines = File.ReadAllLines("test.txt").Skip(2).ToList(); 
foreach(var line in lines) 
{ 
    var fileName = line.Split(new char[] { ' ' },StringSplitOptions.RemoveEmptyEntries)[3] 

    Console.WriteLine(fileName.Replace("\\","/")); 
} 

無需舊樣式,StreamReaderwhile loop等。在此代碼,您正在閱讀用單一的方法都行,跳過前兩個使用Enumerable.Skip擴展方法。

+0

固定感謝您 而((行= file.ReadLine())!= NULL){ 如果替換部分(行== 「版本:11」) 計數器=計數器+ 2; } else { Console.WriteLine(line); counter ++; } – Deathslayer

+0

現在我只需要幫助只獲取行的最後一部分,例如它讀取2013-07-26 10:18a 53 config.ini並且只輸出config.ini – Deathslayer

+0

當然,請檢查我更新的答案 –

0

只是調用兩次ReadLine函數並開始讀取數據。

file.ReadLine(); 
file.ReadLine(); 

while ((line = file.ReadLine()) != null) 
{ 
    Console.WriteLine(line); 
    counter++; 
}