读取csv文件c#有没有办法将csv文件读入矩阵,那么文件中的每个方块都是矩阵中的一个单元格?有许多开源CSV阅读器,编写您自己的代码也很容易。首先看看codeplex.com:http://kbcsv.codeplex.com/或Codeproject教程:http://www.codeproject.com/KB/database/CsvReader.aspx为了完成,这里是我自己的实用程序类,用于从CSV文件中读取一行://////定义CSV阅读器状态///enumState{Initial,Quote,Data,NestedQuote}//////初始化类的新实例。//////输入流。publicCsvReader(StreaminputStream){if(inputStream==null)thrownewArgumentNullException("inputStream");reader=newStreamReader(inputStream);}//////读取单行CSV数据。//////CSV字段数组publicstring[]Read(){varline=reader.ReadLine();varretval=new列表();如果(行==空)返回空;varstate=State.Initial;vartext=newStringBuilder();foreach(varchinline)switch(state){caseState.Initial:if(ch=='"')state=State.Quote;elseif(ch==',')retval.Add(string.Empty)};else{text.Append(ch);state=State.Data;}break;caseState.Data:if(ch==','){retval.Add(text.ToString());文本.长度=0;state=State.Initial;}否则text.Append(ch);休息;caseState.Quote:if(ch=='"')state=State.NestedQuote;elsetext.Append(ch);中断;caseState.NestedQuote:if(ch=='"'){text.Append('"');state=State.Quote;break;}state=State.Data;转到caseState.Data;}retval.Add(text.ToString());returnretval.ToArray();}//////执行与释放、释放或重置非托管资源相关的应用程序定义的任务。///publicvoidDispose(){reader.Dispose();}Makematrix(untested):vardata=newList();string[]行;使用(reader=newCsvReader(stream))而((line=reader.Read())!=null)data.Add(line);result=data.Select(row=>row.Select(cell=>int.Parse(cell)).ToArray()).ToArray();VisualBasic命名空间中有一个文本阅读器,它在C#中工作并且可以很好地处理可怕的CSV文件:TextFieldParser只需在您的项目中添加对Microsoft.VisualBasic的引用使用正则表达式解析CSV:http://www.hotblue.com/article0000.aspx?id=1a=0006要使用自定义分隔符扩展概念,请参阅以下文章:Howtowritearegularexpressiontomatchastringthatdoes不包含单词?有很多方法。从逐字节读取器开始。这取决于您的csv文件格式(带/不带标题、行结尾或')。我写了我自己的课。好书阅读器:http://www.stellman-greene.com/CSVReader/以上是C#学习教程:阅读csv文件c#分享的全部内容,如果对大家有用还需要详细了解一下C#学习教程,希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
