0

ファイル関連 > テキストファイル操作 内の「ログ記録」を拡張してみました。
お裾分けです。
題して「マルチログ記録(CSV)」です。
Ver630で動作確認済みです。

 

目的/用途

  • 処理状況の集計
  • 勉強

 

拡張内容

  • マルチ化:2つ以上の書き込みデータに対応
  • CSV化:スペース区切りをカンマ区切りに変更

 

スクリプトの変更箇所

  • 書き込みデータの末尾に連番を付与

writeData1 = !書き込みデータ1!
writeData2 = !書き込みデータ2!

objFile.Write(Now & "," & writeLabel & "," & writeData1 & "," & writeData2)

  • 3つめ以降も同様に1ブロックずつ連番を増やす
  • 書き込みラベルを使わないなら、writeLabelがないほうの行を同じように加工する
    どうせ増やすなら、書き込みラベルも書き込みデータの1つと見做して有効活用したい

  

シナリオ内の配置

繰り返し
 検索
 判断
 処理
 マルチログ記録(CSV)

 

ライブラリ拡張の経緯

  • 新しく作ったシナリオで、「文字列の連結(nつ)」で「ログ記録」の書き込みデータを生成していた
  • 既成ライブラリのみで構成する安心感はあった
  • スペース区切りのままでは集計に使いにくかった
  • 「文字列の連結(nつ)」は目的のために工夫した
  • たかが1パーツ、されど1パーツ、遠回り感のほうが気になった

 

使用感

  • 迂回なしでスッキリ
  • 僅かながら時短効果(1日中回し続けるシナリオではチリツモ)

 

各欄の用途例

  • 書き込みラベル:案件ID
  • 書き込みデータ:処理結果(処理済み/未処理のフラグ)
  • 書き込みデータ:処理メモ(処理内容/未処理理由のキーワード)

 

仕様メモ

  • NowはYYYY/MM/DD hh:mm:ssで記録される(OSやWinActorの書式設定に左右されるのかも)
    ExcelならYYYY/MM/DD hh:mm:ssの列もフィルタで年月日時分毎に絞り込めるので、日時の分割は見送り
  • 常に固定ファイルに処理ログが残り続ける
    潔いものの、いつかはログローテとか検討することになりそう

 

ログローテ

  • 10万行で約6MB、5万行で約3MB、17500行で約1MB
  • 10万行からでもログ記録で1行追加するのは一瞬で軽々
  • ログファイルは1MBを超えると、何となく気持ち悪い
  • 実務上は、最新1週間分が残ってれば十分過ぎる
  • 1000行/日として、常に下から7000行を残しておけば良さそう

テキストファイルの任意の行を削除したい
5000行のテキストファイルから1~20行目を削除したい

https://okwave.jp/qa/q6855897.html

more +10000 ログファイル.csv > ログファイル2.csv

  • 古いコマンドなのか、65535行目までしか出力されないみたい
    → 65535行を超えないことが自明なファイルに対してなら十分に使えそう

 

類似のトピック

https://winactor.com/questions/?q=ログファイル (追記型)の溜まったログ削除

※ 学びを積み上げてきた今なら、重いことが自明なExcelは使わないかも

 

「ログ記録」関連のトピック

https://winactor.com/questions/?q=WinActorで実行ログを取得する方法

https://winactor.com/questions/question/マイナーなライブラリ使ってみた。「ログ記録」/

anothersolution 質問の投稿
回答とコメントは、会員登録(無料)で閲覧できるようになります。