从文件中提取特定的数据

我有一个具有以下数据的特定csv文件:

 uid Business Area employeeNumber名字姓氏JobcodeID

 EXBK145房屋贷款9134805梅森卡普里50635804
 ABES623 Absa顾问和精算师9136459 Elroy先令50644965
 EXTK194外汇业务9140600 Tania Kanniappen 60390922
 ABNM539 Absa商业银行9025659 Zodwa Mgaga 60225348
 ABAJ253 Absa Ins&Fin Advisers(Pty)Ltd 9040745AndréJoubert 50055313
 ABSP391渠道销售和服务9044366 Steph Potgieter 4863
 ABDL205 Absa Card 9083713 Lesego Lekgoro 50050702
 EXNM450渠道销售和服务9121175 Thando Shangase 60470761
 EXSK201 Allpay 9130647 Sibusiso Kambule 60615651
 ABEK171 AIFA-PB Advisers 9011833EsméPretorius 60660026

我需要有以下输出:

行动uid EmploymentStatus
修改EXBK145 0
修改ABES623 0
修改EXTK194 0
修改ABNM539 0
修改ABAJ253 0
修改ABSP391 0
修改ABDL205 0
修改EXNM450 0
修改EXSK201 0
修改ABEK171 0

从input文件,我需要的是UID。 我试过“快速CSV阅读器”,但我不能正常工作在我的系统………..我使用Visual C#2010年。我也尝试正则expression式,但没有工作作为预期。

任何帮助将不胜感激,任何例子,所以我可以从中学习。

在此先感谢库尔特

你有什么是一个制表符分隔的文件。 有许多免费和开源的库可以读取它们(例如, FileHelpers )。

另一方面,如果您只需要第一列,则可以逐行读取文件,并使用StreamReader自行parsing:

using (StreamReader sr = new StreamReader("TabDelimited.txt")) { string line; // Read and display lines from the file until the end of // the file is reached. while ((line = sr.ReadLine()) != null) { int idx = line.IndexOf(' '); if (idx < 0) continue; // get the uid string uid = line.Substring(0, idx - 1); } } 

您可以使用string数组中的File.ReadAllLines(path)读取整个文件,然后使用String.split(“')分析每行。

 string [] strArray = File.ReadAllLines(path); string [] line1 =strArray[0].Split(' '); 

line1将拥有第一行的所有数据。

谢谢Saurabh

有一个很好的实用工具,叫做LumentWorks的CsvReader。 免费。 它有很好的function。

这是我用过的一个简单的代码:

       CsvReader csv = new CsvReader(textreader,hasHeaders,delimiter);

       int fieldCount = csv.FieldCount;
       string [] headers = null;
      如果(m_bHasCSVHeaders)
         headers = csv.GetFieldHeaders();     

       while(csv.ReadNextRecord())
       {...}

希望能帮助到你