[リストへもどる]
一括表示

投稿時間:2003/12/09(Tue) 19:35
投稿者名:てつや
Eメール:
URL :
タイトル:
ADOを使用しMSHFlexGridにCSVを取込
「MSFlexGrid関係」に表題の方法が記載されてあったのを拝見させて頂きました。
最後の所に「DAO同様読込ファイルの型指定は SCHEMA.INI ファイルを使用する事でできます。」と
書いてあったのですが、実際にどの様にしてコードを書けばよいかわからなかったので教えてください。
やりたい事:1、1行目を列名として扱いたくない。
      2、各データを文字列で取り込みたい。
        (例えば、[0001]→[1]にならないようにしたい。)
よい方法があれば、教えてください。
よろしくお願いします。

投稿時間:2003/12/09(Tue) 20:09
投稿者名:花ちゃん
Eメール:
URL :
タイトル:
Re: ADOを使用しMSHFlexGridにCSVを取込
メモ帳等で下記のように書いて、ファイル名を Schema.ini として保存して下さい
Schema.ini ファイルは、テキスト(データファイル)ファイルと同じフォルダに保存する必要があります。
入れておけば、VB上から特別な動作をしなくても自動的に読み込まれます。

[test.CSV]
ColNameHeader=false
Format=CSVDelimited
MaxScanRows=8
CharacterSet=OEM
Col1=A Text Width 50
Col2=B Text Width 50
Col3=C Text Width 50
Col4=D Text Width 50
Col5=E Text Width 50
Col6=F Text Width 50
Col7=G Text Width 50
Col8=H Text Width 50

Col8=H 等は 列数分作成して下さい。 Col8="氏名" のように項目名でも
Width 50 はCSVではそのままでも Col8=H Text でも問題なかったと思います。


一応上記の設定で試して見て下さい。


詳しくは以下、Schema.ini の記入要領をご覧下さい。

[ファイル名]
仮に test.CSV としておりますので test.CSV の部分だけファイル名に合せて変更して下さい
テキストファイル名を入れる、複数のファイルが存在する場合続けて個々のテーブルの定義を行なう。

ColNameHeader
一列目を列名として使うかどうか
True とすると、一列目に書き込まれているデータを列名として用いる。

Format 固定長フォーマットか、区切り記号付きフォーマットかを示す
「FixedLength」とすると、固定長。Delimited(!)」とすると、区切り記号付きを示す。

MaxScanRows
列のデータ型を調べる時に調べる行数を指定する
0 を指定した場合は、全ての行を検索します。 (デフォルトは8)

CharacterSet
文字列のコード体系を示す
OEM または、ANSI を用います。通常は、OEM でよいです。

Col1, Col2, Col3 ...........
個々のフィールドの属性を指定する。以下の書式で指定します。
Col1=A Text Width 50

Col1 の1は、何列目かを示します。
A  には、フィールド名を入れます。上記のようにABCでも動作します。

Text には、データ型を入れます。

Width は、列幅を指定します(固定長のときのみ有効)。

type に指定できる値は以下の通りです。

Bit型        : Bit
バイト型       : Byte
整数型        : Short
長整数型       : Long
通貨型        : Currency
単精度浮動小数点数型 : Single
倍精度浮動小数点数型 : Double
日付/時刻型     : DateTime
テキスト型      : Text
メモ型        : Memo



尚、上記以外の設定も出来るようです。詳しくは WebやMSDNで Schema.ini で検索して調べて下さい。
http://www.akj.co.jp/aug/qa/ans0001-0050/0315.html

投稿時間:2003/12/09(Tue) 21:01
投稿者名:てつや
Eメール:
URL :
タイトル:
ありがとうございます。
ありがとうございます。
早速、試してみます。

> メモ帳等で下記のように書いて、ファイル名を Schema.ini として保存して下さい
> Schema.ini ファイルは、テキスト(データファイル)ファイルと同じフォルダに保存する必要があります。
> 入れておけば、VB上から特別な動作をしなくても自動的に読み込まれます。
>
> [test.CSV]
> ColNameHeader=false
> Format=CSVDelimited
> MaxScanRows=8
> CharacterSet=OEM
> Col1=A Text Width 50
> Col2=B Text Width 50
> Col3=C Text Width 50
> Col4=D Text Width 50
> Col5=E Text Width 50
> Col6=F Text Width 50
> Col7=G Text Width 50
> Col8=H Text Width 50
>
> Col8=H 等は 列数分作成して下さい。 Col8="氏名" のように項目名でも
> Width 50 はCSVではそのままでも Col8=H Text でも問題なかったと思います。
>
>
> 一応上記の設定で試して見て下さい。
>
>
> 詳しくは以下、Schema.ini の記入要領をご覧下さい。
>
> [ファイル名]
> 仮に test.CSV としておりますので test.CSV の部分だけファイル名に合せて変更して下さい
> テキストファイル名を入れる、複数のファイルが存在する場合続けて個々のテーブルの定義を行なう。
>
> ColNameHeader
> 一列目を列名として使うかどうか
> True とすると、一列目に書き込まれているデータを列名として用いる。
>
> Format 固定長フォーマットか、区切り記号付きフォーマットかを示す
> 「FixedLength」とすると、固定長。Delimited(!)」とすると、区切り記号付きを示す。
>
> MaxScanRows
> 列のデータ型を調べる時に調べる行数を指定する
> 0 を指定した場合は、全ての行を検索します。 (デフォルトは8)
>
> CharacterSet
> 文字列のコード体系を示す
> OEM または、ANSI を用います。通常は、OEM でよいです。
>
> Col1, Col2, Col3 ...........
> 個々のフィールドの属性を指定する。以下の書式で指定します。
> Col1=A Text Width 50
>
> Col1 の1は、何列目かを示します。
> A  には、フィールド名を入れます。上記のようにABCでも動作します。
>
> Text には、データ型を入れます。
>
> Width は、列幅を指定します(固定長のときのみ有効)。
>
> type に指定できる値は以下の通りです。
>
> Bit型        : Bit
> バイト型       : Byte
> 整数型        : Short
> 長整数型       : Long
> 通貨型        : Currency
> 単精度浮動小数点数型 : Single
> 倍精度浮動小数点数型 : Double
> 日付/時刻型     : DateTime
> テキスト型      : Text
> メモ型        : Memo
>
>
>
> 尚、上記以外の設定も出来るようです。詳しくは WebやMSDNで Schema.ini で検索して調べて下さい。
> http://www.akj.co.jp/aug/qa/ans0001-0050/0315.html