8. 更新履歴
⇒重要な変更はココに書くかもしれません。
サブルーチン ini_save の位置が適切とはいえません。
異常終了時でも LastTime を記録してしまうので必要なデータが取得できない場合があります。
今週のデータ分だけでも、現在の &ini_save() をコメントアウトして、
データ取得後にセーブする
ように変更してください。
&ini_save() ;
print "\t今週のデータを取得しました。→ $fn\n" ;
} else {
辺りが適当だと思います。 ↑ 2006.03.23 追記。
適当ではありません。無駄に何度もセーブしています。データ取得後にフラグを
たてて、最後に
そのフラグによって一回だけセーブするほうがいいようです。↑はダメな例として残します。
※ 2006.04.03
公開バージョンでは、JVRead でデータの読み込みをしています。
JVGets を使う方がイイようなので、一応該当部分を下記に
・・・〜
my $bsize = Variant( VT_I4, 5120 ) ;
my $string = Variant( VT_UI1|VT_ARRAY|VT_BYREF, '' ) ;
my $fn = Variant( VT_BSTR|VT_BYREF, '' ) ; # ファイル名
my @dat = () ; my $i = 0 ;
my $flg ;
while ( $flg = $jvd->JVGets( $string, $bsize, $fn ) ) {
next if $fn =~ /^H[16]/i ; # 票データは除外
next if $fn =~ /^O/i ; # アタマに O と B がつくのは除外
next if $fn =~ /^BR/i ;
my $yyyy = substr( $fn, 4, 4 ) ;
if( $flg > 0 ) {
$dat[$i] = $string->Get ;
$i++ ;
$string = Variant( VT_UI1|VT_ARRAY|VT_BYREF, '' ) ;
} elsif( $flg == -1 ) {
〜・・・
コンナ感じになります。参考にしてください。※ ↑ 2006.03.30 追記。
速くはなっていないようだし、基本的なところをいろいろ見直す必要がありそうです。
気が向けば修正版を公開するつもりですが、いつになるか分かりません。