schema.iniファイルを利用してテーブルの定義情報通りに読み込む (TAB区切りのテキストファイルを読み込む)

Excelを使ったデータベース操作   目次はこちら 

schema.iniファイルを利用してテーブルの定義情報通りに読み込む
(TAB区切りのテキストファイルを読み込む)

ADOでテキストファイルを読み込む時には、デフォルト設定ではカンマ区切りのテキストファイルと見なされる。
各フィールドのデータ型の判断はADO側で自動的に行う。
これは、単一のテキストファイルでは、データのテーブル定義情報(スキーマ情報)が保持できないためである。
しかし、 Scema.ini というテーブル情報の設定ファイルを併用することで、テキストファイルの定義情報を指定し、ADOでその定義情報に従った形で読み込むとが可能となる。

TAB区切りのテキストファイルを読み込む
次のようなタブ区切りのテキストファイルを読み込んでみる。

これを「Excelへテキストファイルを読み込む」に記載したようなコードで読み込むとCSV形式ではないため、次のように読み込まれてしまう。
ひとつのセルにデータが一行分格納され、意図された通りに読み込めない。

そこでテーブルの定義情報を書き込んだ schema.ini ファイルを作成する。
テキストエディタで次のようにテーブルの定義を記述し、読み込むテキストファイルと同じフォルダに schema.ini と言うファイル名で保存する。

schema.ini ファイルの内容
内容 記述方式
テーブル名 [テキストファイル名]
定義を行うテキストファイルの指定。
ヘッダの有無 ColNameHeader=True/False
1行目をフィールド名として扱う場合には「True」扱わない場合は「False」を指定。
文字セット CharacterSet=文字セット
区切り文字 Format = 区切り文字
区切り文字を指定する、代表的なものは以下の通り。

CSV形式 Format=CSVDelimited
TAB区切り Format=TabDelimited
スペース区切り Format=Delimited()
( )内は半角スペースが入る。
任意の区切り文字 Format=Delimited(任意の文字列)
固定長 Format=FixedLength
フィールド定義 Col列番号=フィールド名 データ型 [長さ]
フィールド情報の定義で、必要な数だけ記述する。
たとえば、1つ目のフィールド名は「ID」データ型は「整数」と定義する場合は、「Col1=IDInteger」と記述する。
2つ目の1つ目のフィールド名は「商品名」データ型を「文字列」長さを「20」と定義する場合は、「Col2=商品名Char Width 20」と記述する。
データ型はBit、Byte、Short、Long、Currency、Single、Double、DateTime、Text、Memo等のキーワードで設定する。

schema.iniファイルを利用しての実行結果