2012-01-27 13 views
-3

私はMicrosoft Text ODBC DriverまたはMicrosoft Jet OLE DB 4.0 Providerを使用してファイルを読み取ろうとしていました。固定形式のテキストファイルを読む

だから私は、次のコード

public void Example() 
{ 
string CVS = Application.StartupPath; 
string SQL = "SELECT * FROM [MyFile.txt]"; 
string Connection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+CVS+";"+"Extended Properties='text;HDR=Yes;FMT=Fixed;"; 
OleDbDataAdapter OLE = new OleDbDataAdapter(SQL,Connection); 
DataTable Table = new DataTable(); 
OLE.Fill(Table); 
} 

私は上記のコードを実行すると、私は「予期しないエラー」を取得する必要があり、私は何かが欠けています知って、私は正確に何を確認していません。

源:

http://www.connectionstrings.com/textfile
http://www.connectionstrings.com/Providers/net-framework-data-provider-for-ole-db
http://www.aspdotnetcodes.com/Importing_CSV_Database_Schema.ini.aspx

任意の方向は理解されるであろう。

Schema.iniファイルが正しいと仮定します。それは30と60の長さのテキスト値を持っています。要求された場合、私はその文書を提供します。

+0

Whoa、そのようなテキストファイルを読めるかどうかわかりませんでした。 –

+0

接続文字列のパスに末尾の円記号を追加してみてください。 3番目のソースの例で明示的に追加されました。それは違いを生むかもしれない。 –

+0

区切られたファイルを扱っている場合は、行単位で読みやすくなりますか? – Tim

答えて

4

'(テキストの直前)を接続文字列から削除します。解決するために

「インストール可能なISAMドライバーが見つかりませんでした」、次のコマンドを実行します。 ます。regsvr32 C:\ WINNT \ SYSTEM32 \ mstext40.dll *ファイルは、最初にそのフォルダ内にあることを確認しますが。 WINNTをあなたのWindowsディレクトリが何であれ変更してください。

+0

あなたは確かにディレクトリパスですか? –

+1

winntをWindowsディレクトリに変更します。 – Holystream

+0

ファイルを見つけることができました。コマンドを使用しても、エラーは発生します。もう少し長く遊んでいきます。 **本当にAccessファイルを使用するCOMライブラリが使いやすくなったことを願っています。** –

0

私はこれがあなたの質問に本当の答えではないですけど、私は本当にファイルを読み込むために、このアーキテクチャを使用する方法について再考でしょう。

それはあなたのデータを解釈する方法についてより多くの電力を与える原因私は本当に、CSV Readerのようなものを好むだろう。代わりに、FileHelpersを調べることもできます。

+0

によって完全な完全な答えが与えられました。問題のファイルはカンマ区切りの値ではありません。それはアクセスデータベースからエクスポートされ、フォーマットを保持したいと思います。 –

関連する問題