過去の桐井戸端BBS (桐ver.9)
21853 一括処理でファイル複写をするときにWindowsでコピーするときのようなインジケータを出したい なにわ の桐リスト 2003/08/13-12:16
一括処理で教えて下さい。

*********一括処理************
ファイル複写 "c:\dateik\kyusai3.tbl","d:\datbak\kyusai3.tbl",終了状態=&実行リターン
****************************

転送するファイルが130MB程あり約1:20分くらいかかります。

手動で実行する場合 Windwsの羽つきで飛ぶBOXで下にインジケーターが出ます。

同じようなインジケーターか、亀をステータスバーに走らすようなこと出来ないでしょうか??

教えて下さい。


21854 Re:進捗状況表示 悲しげ 2003/08/13-20:31
記事番号21853へのコメント
以下は、処理を遅くするだけで、殆ど意味があるとは思いませんが……(^^;)

名札 メイン
 var 固有,文字列{&表示1,&表示2} \
   ,固有,長整数{&総件数,&百分の壱,&i,&始行}



手続き定義開始 フォーム::フォーム開始(長整数 &表番号)
 &表示1="",&表示2=#複写(".",50)
 オブジェクト操作 @a表示1.標題=&表示1,@a表示2.標題=&表示2
手続き定義終了

proc 複写実行()
 method @フォーム.再描画(0)
 表 "a.tbl"
 &総件数=#総件数,&百分の壱=&総件数%100,&i=0
 if(&総件数<100)
  確認 "百行以上の表でしか使えません"
  method @b閉じる.実行()
 end
 書き出し 枠組み,"b.tbl"
 表 "b.tbl"
 編集表 "a.tbl"
 繰り返し
  &表示1=#str(&i)+"%処理済" \
  ,&表示2=#複写("o",#int(&i/2))+#複写(".",50-#int(&i/2))
  オブジェクト操作 @a表示1.標題=&表示1,@a表示2.標題=&表示2
  method @フォーム.描画更新()
  編集表 "a.tbl"
  &始行=&i*&百分の壱+1
  絞り込み解除
  ジャンプ 行番号=&始行
  if(&i=99)
   絞り込み 行数=-1
   手続き実行 読み込み()
   繰り返し中止
  else
   絞り込み 行数=&百分の壱
   手続き実行 読み込み()
   &i=&i+1
  end
 繰り返し終了
 &表示1="100%処理完了",&表示2=#複写("o",50)
 オブジェクト操作 @a表示1.標題=&表示1,@a表示2.標題=&表示2
 method @フォーム.描画更新()
 編集表 "a.tbl"
 終了 表 編集対象表
 編集表 "b.tbl"
 終了 表 編集対象表
end

proc 読み込み()
 編集表 "b.tbl"
 ジャンプ 行番号=終端
 読み込み 表,"a.tbl",編集表=する,終了状態=&実行リターン,*
end


21855 Re:進捗状況表示 悲しげ 2003/08/13-20:59
記事番号21854へのコメント
補足します。
当該フォームにはラベルオブジェクトふたつ設定していまして、
そのひとつ「a表示1」は「n%処理済」と表示されるようにします。
ふたつめの「a表示2」は次のように変わっていくようにします。
(LZHの圧縮・解凍画面のイメージっつーか)

 .................................................. (0%)
             ↓
 ooooooooooooooooooooooooo......................... (50%)
             ↓
 oooooooooooooooooooooooooooooooooooooooooooooooooo (100%)

挙げた記述は、当該フォームのkevの中味です。
表ファイル名とパス名は当然ながら別名です。
21856 Re:進捗状況表示 悲しげ 2003/08/13-21:04
記事番号21855へのコメント
補足(その2)です。
コマンドボタンをふたつ設定しています。

そのひとつは、「b閉じる」で
 機能名
 閉じる

もうひとつは、「b複写実行」で
 機能名    同パラ
 手続き実行  複写実行

21857 悲しげさんは 有り難うございます なにわ の桐リスト 2003/08/14-09:05
記事番号21855へのコメント
悲しげ さん 有り難うございます。

私一括処理は或る程度、数と年数(桐3から桐8)経験有りますが
イベントでの処理は簡単な(印刷、画面切替程度)物しか扱ったこと
有りませんので、お指定のコマンド群の試行が出来ません。
時間をかけて、勉強して見たいと思ってます。

>処理を遅くするだけで、殆ど意味があるとは思いませんが……(^^;)

のお言葉通り、何となく処理を100分1ずつ区切って実行し
その区切りの終わりに「インジケーター」表示するらしい??
ことしか解ってません・・・申し訳有りません。

解決として、シェル実行で「FT98」シアウェアを起動して
ファイル複写することに致しました。

重ねて、お提案有り難うございました。

21862 Re:進捗状況表示 悲しげ 2003/08/14-15:25
記事番号21857へのコメント
どもっ、なにわの桐リストさん

>解決として、シェル実行で「FT98」シアウェアを起動して
>ファイル複写することに致しました。

その方が絶対的にいいと思います。(^^;)

殆ど役に立ちそうもありませんが、例をこちらに挙げておきます。

21869 Re:進捗状況表示 hidetake 2003/08/14-17:40
記事番号21862へのコメント
こんな内容かな?

桐でWINDOWSの「ファイルコピー」を利用したい。
http://www.fuku3.com/~habata/kbbs/kakov8/06175.htm


21871 Re:進捗状況表示 悲しげ 2003/08/14-18:10
記事番号21869へのコメント
どもっ、hidetakeさん
やはり既出でしたね。
21873 最終報告 なにわ の桐リスト 2003/08/14-18:37
記事番号21871へのコメント
hidetake さん  有り難うございます。

お指摘のサイト(佐田さん)を見てFT98を思いつきました。

悲しげ さん
イベントの掲載有り難うございます。

結果報告します。
レコード数 145231で

20%  31秒
40%  53秒   1:21
60% 1:15 2:36
80% 1:35 4:01
90% 2:05 6:06
100% 2:47 8:54

でした、もう一つ解ったことは、80%あたりから、ステータスバーに亀が出てきたことです。

ちなみにFT98の場合D&Dは11秒ですが
手動の時間をいれると20〜34秒くらい

で最終的に一括処理の中で転送案内のフォームを挿入し、
インジケータは出ないですが 終了したことだけは解る、を採用し23秒でした。

戻る