1

我正在使用 C# 并尝试CSV使用此连接字符串读取 a;

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\rajesh.yadava\Desktop\orcad;Extended  Properties="Text;HDR=YES;IMEX=1;FMT=Delimited"

这适用于制表符分隔的数据。

我想要一个连接字符串,它应该用于制表符分隔以及逗号(,)和管道(|)。

如何为CSV.

谢谢拉杰什

4

7 回答 7

2

filehelpers库一个选项吗?

于 2008-11-27T07:44:54.340 回答
1

如果您需要快速顺序访问 CSV 文件,可以选择快速 CSV 阅读器。前段时间我在一个项目中使用它并取得了巨大的成功。它应该进行了很好的优化,并且如果您需要它还提供缓存版本。此外,它自 2005 年首次发布以来已多次更新(最后一次更新于 2008 年 10 月 9 日),它通过实现System.Data.IDataReader.

于 2008-11-27T08:32:34.930 回答
1

我知道这不能回答你的问题,但这里有一个警告。

我不得不创建自己的阅读器,因为如果您曾经在 64 位系统上运行,您将无法获得正确的驱动程序。

如果您的软件将在 64 位系统上运行,请确保您首先对其进行测试,并且将存在 oledb 或 odbc 驱动程序。

于 2008-11-27T07:49:10.713 回答
0

如果不滚动自定义解决方案,我不确定是否有一种直接的方法可以支持多个分隔符。该页面建议通过 schema.ini 您可以选择:

  • 制表符分隔
  • CSV 分隔
  • 一个特定字符(双引号除外)
  • 固定宽度
于 2009-03-14T08:30:18.403 回答
0

使用 TextFieldParser 类是一种选择吗?

http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.aspx

于 2008-11-28T00:09:04.010 回答
0

以下是网络上讨论此问题的一些链接:

于 2008-11-27T08:18:35.957 回答
0
    class CSVFile extends SplFileObject
{

private $keys;

    public function __construct($file)
    {
        parent::__construct($file);
        $this->setFlags(SplFileObject::READ_CSV);
    }

    public function rewind()
    {
        parent::rewind();
        $this->keys = parent::current();
        parent::next();
    }

    public function current()
    {
        return array_combine($this->keys, parent::current());
    }

    public function getKeys()
    {
        return $this->keys;
    }
}

然后使用:

$csv = new CSVFile('exmaple.csv');

您可以使用以下方法遍历行:

foreach ($csv as $line)
{
于 2013-06-17T04:37:35.707 回答