2016-03-12 74 views
-1

我有很多這樣的刪除線,其他日期

PrId Name Quantity Price Date 
    3  Milk 2  100 23-08-15 

,我從一個txt文件 我把所有的線串導入和作出一切parametrs每個像

id is lines[i].Split('\t')[0] 
Name is lines[i].Split('\t')[1] 
Quantity is lines[i].Split('\t')[2] 
Price is lines[i].Split('\t')[3] 
and date is lines[i].Split('\t')[4] 

我怎麼可以刪除除日期之外的所有行23-08-15

回答

1

使用可以使用簡單的Linq聲明。

var date = DateTime.ParseExact("23-08-15", "dd-MM-yy", null); 

var filterdLines = File.ReadAllLines(@"inputfile") 
       .Where(s => DateTime.ParseExact(s.Split('\t')[4], "dd-MM-yy", null) == date) 
       .ToList(); 

File.WriteAllLine("outputfile", filterdLines); 
0

您應該遵循以下步驟:

1)日期23-08-15識別線。。這可以使用DateTime.TryParseExact函數來完成:

DateTime buffer; 
bool parseOk = DateTime.TryParseExact(lines[i].Split('\t')[4], "dd/MM/yy", CultureInfo.InvariantCulture, null, out buffer); 

if (buffer != new DateTime(2015, 08, 23)) 
    // skip the line 

2)寫回過濾行。目前還不清楚這是否是必需的,但如果你必須寫回來的文件,你可以這樣使用

File.WriteAllLines("outputfile", filteredLines);