ラベル SRX の投稿を表示しています。 すべての投稿を表示
ラベル SRX の投稿を表示しています。 すべての投稿を表示

2014年5月7日水曜日

SRX - SAS Regular Expression Utility

SRXを新しいDelphi XE6でリビルドしました。他の人にも使ってもらうために、メニューを日本語化しています。それと、32bit版、64bit版の2種類をビルドして、EG4.xとEG6.xにも対応しました。

これで、SAS9.4への移行作業でもれなくチェックして、エビデンスを残したり、書き直す前のチェックに時間的な余裕が生まれます。
似たようなツールは他にもありますが、エビデンスとなるものが出力されないのが弱点です。




2012年6月11日月曜日

EGPの中を検索するツール


How to search your SAS Enterprise Guide project files

世の中、考えることは同じなのです。
しかし、インターフェイスの作りが違って面白い。
SRXの公開版を作らねば...

2012年5月24日木曜日

SRX, 仕事で使ってみた。良かった!

Microsoft風に現せば、自らドッグフードを喰らうとでも言うのでしょうか。SRXを仕事で使ってみたが、なかなか良かった。いくつもあるSASコードから、同じような問題箇所を洗い出し、報告用の資料を作りました。

Windows環境だと、拡張子.SASのコードの中身を検索できないことがあります。社内ではUNIX上でgrep(1)を使うのですが、エビデンスのファイルを作るのが面倒でした。今回は、SRXを使ってSASプログラム一覧を作成し、抽出パターンとマッチングした結果をExcelファイルに保存しました。30分程度で、まとまったExcelファイルになって、素早さが好評でした。

改善したいと思ったのは、Excelファイルにエクスポートしたときに、ヘッダ、フッタの設定です。これも機能化すれば、10分程度でエビデンスを抽出して精査の時間をゆったり取れます。あ、Windows7未対応でした。

2011年4月30日土曜日

SRX, 有効期限の設定

開発の覚書です。今日の作業をメモしておきます。バージョンアップには検証が付き物。検証といえばエビデンス。エビデンスといえば面倒。その面倒なエビデンス作りを楽にするために、機能を追加しました。
  • スプラッシュにバージョン番号を表示する処理を修整
  • スプラッシュに有効期限を表示するように修整
  • 有効期限の制限を追加
  • ホスト名による制限を追加
  • 終了時にテンポラリを削除しないオプションを追加
  • テンポラリフォルダをエクスプローラで開く機能を追加
それと、以下の項目は保留とします。ここまで作れば、実用十分と判断したからです。バックアップファイル作る機能は欲しいのですが、プロジェクトファイル内部のコードタスクと、貼り付けたSASコードの区別が付かないため、今のところ実装しません。
  • プロジェクトファイルのバックアップを作成するか検討
  • プログレスバーを表示できるか検討、スレッド化するか?
ぼちぼち、仕事で使える次のツールを検討します。

2011年4月25日月曜日

SRX, エビデンス保存

開発の覚書です。今日の作業をメモしておきます。バージョンアップには検証が付き物。検証といえばエビデンス。エビデンスといえば面倒。その面倒なエビデンス作りを楽にするために、機能を追加しました。
  • 全てのタブを1つのブックに保存する機能を追加
それと、明日以降の作業をメモしておきます。
  • プロジェクトファイルのバックアップを作成するか検討
  • プログレスバーを表示できるか検討、スレッド化するか?
  • 仕事用に有効期限とホスト名しばりを追加したい
  • 終了時にテンポラリを削除するか確認する機能を検討

2011年4月20日水曜日

SRX, ファイル一覧をStringGrideに変更

開発の覚書です。今日の作業をメモしておきます。検索の対象も、検索のパターンも、置換結果も1つのExcelファイルにまとめます。エビデンスとして提出するときに1つのブックだと、まとまりが良いので。
  • プロジェクトファイル一覧をTAdvStringGridに変更し、ExcelIOでインポートとエクスポートを作り直しました。
それと、明日以降の作業をメモしておきます。
  • ファイル一覧、検索ベンチ、置換結果をまとめてExcelに出力
  • プロジェクトファイルのバックアップを作成するか検討
  • プログレスバーを表示できるか検討、スレッド化するか?
  • 仕事用に有効期限とホスト名しばりを追加したい

2011年4月17日日曜日

SRXの概要

SRXの概要を説明します。SAS Enterprise Guideのプロジェクトファイルに含まれるコードタスクを検索、置換するためのツールです。多数のEGPを抱えているユーザに役立つツールです。

なぜSRXを作ったのか?
SAS Enterprise Guideは、ポイント&クリックで簡単にデータを加工、分析できる便利なツールです。しかし、コードタスクで記述したプログラムをまとめて検索、置換する機能がありません。また、一般的な検索と置換のツールは、修整範囲の調査とエビデンスを残すという機能が不足しています。EGプログラム資産を漏れなく調査し、修整を行ったエビデンスを残すために、SRXを開発しました。

SASバージョンアップにおいて面倒なのが、書き換える部分を探しながら置換のパターンを定義する作業です。私はこれまでUNIX上にコードを落として、grep(1)でパターンを洗い出しては、置換のパターンを作っています。SRXは、検索して置換のパターンを作る作業、エビデンスを残す作業を連続して行えるようにしています。

SRXの機能
SRXの機能を以下に列挙します。
  • EGPに含まれるコードタスクの文字列を検索、置換
  • 複数の.EGP, .SASを指定
  • 正規表現を使って、コードタスク中の文字列を検索、置換
  • 検索した結果をExcelファイルに出力
  • 置換した結果をExcelファイルに出力
  • コードタスクを確認しながら正規表現を定義
  • 置換した結果をDF.EXEで事前に確認
操作手順
操作手順を図示して説明します。


プロジェクトファイル又は.SASのファイルをドロップで指定します。

コードを抽出し、置換したい部分を右クリックメニューで正規表現のタブにコピーします。

正規表現タブで、パターンを編集します。

マッチングタブで置換した部分を確認します。

DF.EXEでコード全体を比較します。

今の時点では、SRXをVectorに登録しません。広いニーズがあるツールではないので、自分の仕事にだけ使う予定です。

SRX, SASファイルも処理できるように修正

開発の覚書です。今日の作業をメモしておきます。今日までの作業で安定したコードになってきました。後は、リクエストに応じて微調整を入れます。

  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに操作の情報を表示
  • EGを起動するタイミングを変更
  • 関数、プロシージャを整理
それと、明日以降の作業をメモしておきます。
  • プロジェクトファイルのバックアップを作成するか検討
  • プログレスバーを表示できるか検討、スレッド化するか?
  • 仕事用に有効期限とホスト名しばりを追加したい

2011年4月13日水曜日

SRX, レジストリを参照してオブジェクト名を取得

開発の覚書です。今日の作業をメモしておきます。

  • EGのOLEオブジェクトを定数から、GetRegStringValueで取得するように変更
それと、明日以降の作業をメモしておきます。
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに表示する情報をさらに検討
  • プログレスバーを表示できるか検討、スレッド化するか?

2011年4月10日日曜日

SRX, DF.EXEの起動

開発の覚書です。今日の作業をメモしておきます。
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
それと、明日以降の作業をメモしておきます。
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに表示する情報をさらに検討
  • プログレスバーを表示できるか検討、スレッド化するか?
DF.EXEで置換した結果を比較できます。

2011年4月8日金曜日

SRX, 正規表現の整理

開発の覚書です。今日の作業をメモしておきます。
  • Regular Exp.タブの入力項目を整理する機能(Refresh)を追加
  • 検索ベンチ、正規表現、マッチングのStringGirdに検索フッタを追加
  • AdvExcelIOの属性を変更して、Cellの書式をインポートしないように変更
それと、明日以降の作業をメモしておきます。
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに表示する情報をさらに検討

SRX, 砂時計

開発の覚書です。今日の作業をメモしておきます。
  • 処理中のマウスポインタを砂時計に変更
それと、明日以降の作業をメモしておきます。
  • Regular Exp.タブの入力項目を整理する機能が欲しい
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに表示する情報をさらに検討

2011年4月6日水曜日

SRX, 検索パターンをコピー

開発の覚書です。今日の作業をメモしておきます。
  • 検索ベンチのText列を右クリックメニューで、正規表現のタブにコピーする機能を検討
  • 検索ベンチをExcelにエクスポートする機能を追加
  • ステータスバーにプロジェクトファイルの件数表示を追加
それと、明日以降の作業をメモしておきます。
  • 処理中のマウスポインタを砂時計に変更
  • Regular Exp.タブの入力項目を整理する機能が欲しい
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに表示する情報をさらに検討
Search Benchの右クリックメニューから、Regular Exp.へフィード

SRX, 検索ベンチの実装

開発の覚書です。今日の作業をメモしておきます。
  • 検索ベンチのコード抽出機能を実装
  • 検索ベンチのタブ順番を変更
  • 検索ベンチのText列をコードに合わせて幅調整
  • コードが改行で終わっていないときの処理を追加
それと、明日以降の作業をメモしておきます。
  • 検索ベンチのText列を右クリックメニューで、正規表現のタブにコピーする機能を検討
  • 検索ベンチをExcelにエクスポートする機能を追加
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • ステータスバーに表示する情報を検討

2011年4月4日月曜日

SRX, 検索ベンチの検討

パターンマッチングの正規表現を定義する前に、コードを確認したいと考えました。そこで、Search Benchというタブを設けて、この中でコードを検索できるように検討しています。
Search Footerでコードを検索

今日の作業をメモしておきます。
  • プロジェクトファイルを保存する処理を追加
  • 検索ベンチのタブを実装着手
それと、明日以降の作業をメモしておきます。

  • 検索ベンチのコード抽出機能を実装
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • コードが改行で終わっていないときの処理を追加
  • ステータスバーに表示する情報を検討

 

2011年3月31日木曜日

SRX, スプラッシュ画面

今夜の作業は、スプラッシュの画面を実装です。
  • 起動時のスプラッシュ画面を表
  • 置換の機能を実装
  • 検索と置換のコードを共通化して整理
それと、明日以降の作業をメモしておきます。
  • コードを表示し実験的な検索ができる機能を検討
  • コードをエクスポートして、置換前後のコードをDF.EXEで比較する機能を検討
  • プロジェクトファイルを保存する処理を追加(今は、Saveしていない)
  • プロジェクトファイルのバックアップを作成するか検討
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • コードが改行で終わっていないときの処理を追加
  • ステータスバーに表示する情報を検討
スプラッシュ画面

2011年3月29日火曜日

SRX, 画面イメージ(2)

今夜もSRXの開発で、コードを叩いています。TMS SoftwareのAdvStringGridを導入いたおかげで、開発のスピードが上がっています。個人的な記録のため、今夜、実装した機能をメモしておきます。

  • Matching Testの画面にPopupMenuを実装
  • Matching Testの結果をExcelに出力する機能を実装
  • Replaceのタブを追加し、AdvStringGridを配置
  • Replaceタブに、PopupMenuとボタンを配置
  • ReplaceタブのグリッドをExcelに出力する機能を実装
  • ReplaceタブのPopupMenuにクリアの機能を実装

それと、明日以降の作業をメモしておきます。
  • 置換の機能を実装
  • EGPだけでなく、.SASのファイルも処理できるように機能追加
  • コードが改行で終わっていないときの処理を追加
  • 検索と置換のコードを共通化して整理
  • 起動時のスプラッシュ画面を表示
  • ステータスバーに表示する情報を検討
置換のタブにポップアップメニューを実装




SRX, 画面イメージ

新しいツールSRXを開発中です。週末、作りかけの画面とコードを捨てて新しくコードを書き直しました。次にやることをメモしておきます。

 
  • Matching Testの画面にPopupMenuを実装
  • Matchingの結果をExcelに出力する機能を実装
  • 置換を実行するタブを追加
  • 置換の実行と結果を確認するビューを実装
  • 置換の画面にPopupMenuを実装
  • 置換の結果をExcelに出力する機能を実装
  • EGPだけでなく、.SASのファイルも処理できるように機能追加

 
SRX 開発中の画面イメージ

2010年7月30日金曜日

SRX, ファイル名を表示

自分用のメモです。ListViewを配置して、ドロップしたファイル名を表示するように実装。次は、Openのダイアログを作る。それとも検索の機能を先に作るか?
ステータスバーに情報を表示するためのルーチンは整理したい。

2010年7月29日木曜日

SRX, ドラッグ&ドロップのイベントハンドラ作成

仕事で使いそうなので、また作業を再開します。フォームにドラッグ&ドロップのイベントハンドラを作成。次の作業は、ファイル名をリストビューに表示するロジックを実装すること。