2

好的,我正在 C# 应用程序中导入和解析 csv 文件。我开始做一个简单的 ReadLine() 并以逗号分隔,但结果发现某些文本字段中有逗号。所以我开始推出自己的拆分功能。幸运的是,就在几分钟后,“嘿,笨蛋,可能已经有人这样做了?” 灯亮了,经过几分钟的搜索,我意识到我可以通过 OleDb 连接到目录并以这种方式导入它们。这就像一个冠军,直到我遇到了一些文件名中带有逗号和括号的文件。然后它爆炸了。关于让它从这样的文件导入的任何建议?不,我无法控制输入文件名。有些可能会直接从 CD 中读取,所以我暂时无法更改文件名。

4

3 回答 3

4

我用过这个CsvReader,效果很好。

于 2008-11-05T14:50:13.453 回答
1

将这些文件复制到 %TEMP% 文件夹,并为其命名Path.GetTempFileName(). 您只需要跟踪所有文件名,以便之后删除它们。

效率不高,但会工作;-)

于 2008-11-05T14:48:32.237 回答
0

您可以按逗号拆分,但通过搜索以双引号开头和结尾的字段对然后重新组合它们来处理数据。

您可以在遇到双引号时手动查找逗号,同时打开和关闭 quoteFound 布尔值,并在 quoteFound 为真时忽略遇到的任何逗号。

您可以首先将源代码复制到应用程序目录,然后通过在末尾添加“.csv”来重命名所有文件。

我很确定我用正则表达式以一种令人愉快的聪明方式做到了这一点,但我不知道它是我的哪个项目,所以我没有代码可以提供。

ETA:我还认为,如果您正在读取 SQL Server,您可以使用 SqlBulkCopy 类,然后您可以根据需要查询它。

于 2008-11-05T14:51:21.017 回答