从文件中提取特定的数据
我有一个具有以下数据的特定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()) {...}
希望能帮助到你