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

これがあなたの質問に答えていないことはわかっていますが、ここに警告があります。

64ビットシステムで実行すると正しいドライバーが得られないため、独自のリーダーを作成する必要がありました。

ソフトウェアが 64 ビット システムで実行される場合は、最初にテストし、oledb または odbc ドライバーが存在することを確認してください。

于 2008-11-27T07:49:10.713 に答える
1

CSV ファイルへの高速シーケンシャル アクセスが必要な場合は、Fast CSV Readerを使用できます。しばらく前にプロジェクトで使用し、大きな成功を収めました。それは非常にうまく最適化されているはずで、必要に応じてキャッシュされたバージョンも提供します。さらに、2005 年に最初にリリースされてから (2008 年 10 月 9 日の最後の更新)、何度か更新され、System.Data.IDataReader.

于 2008-11-27T08:32:34.930 に答える
0

カスタム ソリューションを展開しないと、複数の区切り記号をサポートする簡単な方法があるかどうかわかりません。このページでは、schema.ini を使用して次のいずれかを選択できることを提案しています。

  • タブ区切り
  • CSV区切り
  • 1 つの特定の文字 (二重引用符を除く)
  • 固定幅
于 2009-03-14T08:30:18.403 に答える
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 に答える
0

この問題について議論しているネットからのいくつかのリンクを次に示します。

于 2008-11-27T08:18:35.957 に答える
0

TextFieldParser クラスを使用するオプションはありますか?

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

于 2008-11-28T00:09:04.010 に答える