お知らせ

電子会議

ライブラリ

パレット

Delphi FAQ検索

Delphi FAQ一覧

サンプル蔵





FDelphi FAQ
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