お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル

"CSVファイルをTTableで読む+QReport"



こんにちは、凛です。
1.CSVファイルをTTable に読ませる方法
2.そのTTableの各フィールドを動的にQuickRep上のTQRDBTextに結びつける方
法です。

BDEリファレンスにサンプルが載っていますが、いまいちわかりにくいし、ロ
ケールの違いでエラーがでるかもしれません。ヘルプのサンプルとこれを一緒
にみながらやればわかると思います。

CUSTOMER.txt という名前のテキストファイルが対象のCSVファイルだと
します。
内容は以下の通りテキストファイルにカンマ区切りで並んでいます。

123,moon,1.23
124,pooooooo11,1.1
125,moon,1.23
126,pooooooo1,1.2345678
127,pooooooo,1.2345678
128,poooooo,1.2345678
1220,pooooo,1.2
12200,poooo,1.2
12,moon,1.23
1,poo123,222

このデータファイルと同じディレクトリに 同じ名前(拡張子を.SCHに変更)し
あものを作っておきます。これは長さが固定でない場合の例。
イカが上記データに相当するスキーマファイルの例

[CUSTOMER]
Filetype=VARYING
Delimiter="
Separator=,
CharSet=ascii
Field1=ID,NUMBER,20
Field2=Name,Char,30
Field3=Value,FLOAT,4,05,160

 最後の項のオフセットはヘルプの説明が怪しい感じ。上記スキーマで最後の
160を小さい数に振ってみるとどういうことかわかると思います。

フォームにボタン、TTable,QuickRep,Detail Band,QRDBTextX3配置して
ボタンクリックのイベントハンドラをイカのようにする

procedure TForm1.Button1Click(Sender: TObject);
begin
  With Table1 do
  begin
    TableType:=ttASCII;
    Databasename:='c:\short';
    TableName:='CUSTOMER.TXT';
    Table1.Active:=True;
  end;
  QuickRep1.DataSet:=Table1;
  QRDBText1.DataSet:=Table1;
  QRDBText2.DataSet:=Table1;
  QRDBText3.DataSet:=Table1;
  QRDBText1.DataField:='ID';
  QRDBText2.DataField:='Name';
  QRDBText3.DataField:='Value';
  QuickRep1.Preview;
end;

                              2000/07/30(Sun) 11:38pm  MXB01744 凛
 


- FDELPHI  MES(16):玉石混淆みんなで作るSample蔵【見本蓄積】 00/08/06 -

Original document by 凛              氏 ID:(MXB01744)


ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。

Copyright 1996-2002 Delphi Users' Forum