|
16番会議室「玉石混淆みんなで作るSample蔵」に寄せられたサンプル
"DataBaseからCSVを作成する"
procedure TForm1.Button1Click(Sender: TObject);
var
F1 : TextFile; {出力ファイル }
S1 : String; {CSVファイルの1行分の情報}
i : Integer;
begin
//Queryを使う場合はイカのTable1をQuery1と読み替えてください
//また、既にTableがOpenされているものとして処理を記述しています。
if (Table1.FieldCount - 1) >= 0 then //カラムが1以上あれば
if (OpenDialog1.Execute) then //出力ファイルをオペレータに
begin //決めてもらうためのダイアログを出し
AssignFile(F1, OpenDialog1.FileName); //そのファイルをOpenして
Rewrite(F1); //CSVを出力する準備をする
Table1.DisableControls; //DB表示のコントロール(DBGrid等)を切放し
Table1.First; //Tableの先頭から
while not Table1.eof do //Eofになるまで
begin
for i := 0 to (Table1.FieldCount - 1) do
begin //各カラムを処理する
if (Table1.Fields[i].DataType = (ftSmallint))
or (Table1.Fields[i].DataType = (ftInteger))
or (Table1.Fields[i].DataType = (ftWord))
or (Table1.Fields[i].DataType = (ftFloat))
or (Table1.Fields[i].DataType = (ftCurrency))
or (Table1.Fields[i].DataType = (ftAutoInc)) then
//DataTypeが数値項目なら「'」は付けない
if i = 0 then
S1 := Table1.Fields[0].AsString
else
S1 := S1 + ',' + Table1.Fields[i].AsString
else
if i = 0 then
S1 := '"' + Table1.Fields[0].AsString + '"'
else
S1 := S1 + ',"' + Table1.Fields[i].AsString + '"';
end;
Writeln(F1, S1); //1行出力する
Table1.Next; //DataBaseの次の行を読む
end;
Table1.EnableControls;
CloseFile(F1);
end;
end;
おみゃー@名古屋
Original document by おみゃー 氏 ID:(PXB01563)
ここにあるドキュメントは NIFTY SERVEの Delphi Users' Forum の16番会議室「玉石混淆みんなで作るSample蔵」に投稿されたサンプルです。これらのサンプルはボーランド株式会社がサポートする公式のものではありません。また、必ずしも動作が検証されているものではありません。これらのサンプルを使用したことに起因するいかなる損害も投稿者、およびフォーラムスタッフはその責めを負いません。使用者のリスクの範疇でご使用下さい。
Copyright 1996-2002 Delphi Users' Forum
|