我有一个特定的csv文件,其中包含以下数据:
uid Business Area employeeNumber First Name Last Name JobcodeID EXBK145 Home Loans 9134805 Mason Kapari 50635804 ABES623 Absa Consultants & Actuaries 9136459 Elroy Shilling 50644965 EXTK194 Forex Operations 9140600 Tania Kanniappen 60390922 ABNM539 Absa Business Bank 9025659 Zodwa Mgaga 60225348 ABAJ253 Absa Ins&Fin Advisers(Pty)Ltd 9040745 André Joubert 50055313 ABSP391 Channel Sales & Service 9044366 Steph Potgieter 4863 ABDL205 Absa Card 9083713 Lesego Lekgoro 50050702 EXNM450 Channel Sales & Service 9121175 Thando Shangase 60470761 EXSK201 Allpay 9130647 Sibusiso Kambule 60615651 ABEK171 AIFA-PB Advisers 9011833 Esmé Pretorius 60660026
我需要输出以下内容:
Action uid EmploymentStatus modify EXBK145 0 modify ABES623 0 modify EXTK194 0 modify ABNM539 0 modify ABAJ253 0 modify ABSP391 0 modify ABDL205 0 modify EXNM450 0 modify EXSK201 0 modify ABEK171 0从输入文件
我需要的只是UID。香港专业教育学院尝试过“快速csv阅读器”,但我在我的系统上无法正常工作...........我正在使用Visual C#2010。我也尝试使用正则表达式,但这不起作用预期
任何帮助都将受到赞赏,任何例子都可以从中学习。
提前致谢 库尔特
答案 0 :(得分:3)
您拥有的是制表符分隔文件。有许多可以读取它们的免费和开源库(例如,FileHelpers)。
另一方面,如果您只需要第一列,则可以逐行阅读文件并使用StreamReader自行解析:
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);
}
}
答案 1 :(得分:0)
您可以使用字符串数组中的File.ReadAllLines(path)读取整个文件,然后使用String.split('')解析每一行。
string [] strArray = File.ReadAllLines(path);
string [] line1 =strArray[0].Split(' ');
和line1将包含第一行的所有数据。
由于 SAURABH
答案 2 :(得分:0)
LumentWorks有一个名为CsvREader的好工具。免费。它具有很好的功能。
这是我用过的一段代码:
CsvReader csv = new CsvReader(textreader, hasHeaders, delimiter); int fieldCount = csv.FieldCount; string[] headers = null; if (m_bHasCSVHeaders) headers = csv.GetFieldHeaders(); while (csv.ReadNextRecord()) {...}
希望有所帮助