2010年11月24日水曜日

SAS Log Utlity 1.3.1.7 リリース

すみません、先日リリースした1.3.1.6はビルドのミスがありました。ランタイム不足で動かないことがあります。今日、Vectorに新しくビルドしたバージョンを登録申請しました。

2010年11月14日日曜日

Write -> Readの流れが重要

複数プログラム間の関係を追いかけるときに、出力したデータを読む流れ着目すること。プログラムを解く方法として使えるか?

SAS Log Utlity 1.3.1.6 リリース

SAS Log UtilityのElapsed Time、Data Set、Macroのタブにソートの機能を追加しました。これまでは、Excelにエクスポートして、並べ替えてレポートを作成していましたが、ツール上でボトルネックの特定が容易になります。これからVectorに登録します。

2010年10月20日水曜日

ListViewのソートを実装する、今週

SAS Log UtilityでListViewのソートが出来そうでしたが、着手していませんでした。
ちょっとテストコードを書いたら動く目鼻がついたので、今週末にコードを修正し、新しいバージョンを出します。と、書いて自分のやる気を高める。

2010年7月30日金曜日

SRX, ファイル名を表示

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

2010年7月29日木曜日

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

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

2010年7月21日水曜日

SRX, プロジェクトを作成

バージョンアップの要件定義書を書いたり、アプリケーション改修の要件定義書を書いたりして時間が無い、と言っていたら進まないので、ちょこちょこブログにメモを取りながら開発を始めます。今日の作業は、次のとおりです。
  • プロジェクトの作成
  • プロジェクトのオプション設定
  • メインフォームの配置
  • メインメニューの配置
  • ステータスバーの配置
  • アクションリストの作成
  • ページコントロールを配置してタブを3つ作成
次は、アプリケーション終了時の確認を実装します。

2010年7月12日月曜日

SAS Log Utility, やりたいことは何か?

自問自答です。

CRUD表をマクロ単位で要約して何がしたいのか?

プログラムの構造をすっきりと理解すること。
理解するためには、長いログをうまく要約できる機能が必要です。

いまのCRUD表の問題、不便な点は何か?

SASログからI/Oを取り出して、分かりやすくしているが、それでも情報量が多い。
特に表が横に長くなりすぎて、1ステップの処理、1つのマクロで何がイン/アウトか把握しにくい。

改善するためには何が必要か?

横に長い表は駄目。
一覧性が良い(A3用紙程度に収まる)出力が欲しい。

2010年7月10日土曜日

SAS Log Utility, CRUD(Macro)

マクロ単位でI/Oを集約する機能を作りました。しかし、マクロが入れ子になっているときには、集約されないのが痛い。MPRINTNESTで階層の情報を取るか、ログに含まれる情報をさらに詳しく解析できるか?マクロ内部の中間データセットを非表示にして、よりすっきりと構造を解き明かせないか?


2010年7月8日木曜日

SAS Log Utility, マクロ単位でステータスをまとめるにはどうしたら良いか?

CRUD表の行をマクロ単位で集計するときに、結構悩ましい。マクロの中で出力、削除したものはWDと表すか?出力項目が多くなって見づらくならないか?唸りながら、セルの中の状態を考えています。


2010年7月5日月曜日

片仮名をローマ字に変換

SAS9.2のNLS関数で、半角片仮名をローマ字に変換することができます。

data _null_;
    str = KPROPCASE('キタガワ ケイコ', 'KATAKANA, ROMAJI');
    put _all_;
run;

SAS Log Utility 矢印キーでCRUDのセルを移動

開発の覚書です。CRUD表のデータがどこで使われているか探すために、矢印キーでセルの移動ができると良いです。実装したい。ExcelのCtrl+矢印キーで移動する機能ですね。

2010年7月4日日曜日

SAS Log Utility 1.2.1.2, ログファイル名をソート

私家版(1.2.1.2)のSAS Log Utilityにログファイルをソートする機能を付けました。ListViewにソートの機能を付けるのではなく、ファイルをドロップしたときにソートします。ファイル名は時系列に並ぶようにしていることが多いので、個人的にはこれで十分です。

次のリリースでは、もう少し改良します。

2010年7月3日土曜日

SAS Log Utlity 1.2.1.0 リリース

バグ修正版(1.2.1.0)をVectrorに登録しました。修正したのは次の点です。
  • CRUD表のエクスポートで'd'の色がずれる問題を修正
  • CRUD表エクスポートの実装を、条件付書式からセル固定の書式に変更
  • より大きなログを分析できるように固定の作業領域を拡張
  • EXCELエンジンで読み込んだデータの判定を追加
  • デバッグ用の出力 c:\temp\csv.csv を削除
  • OLEのエラー(0x800ac472)を抑制するため、100ミリ秒のスリープを挟み込んだ
 仕事で使い続けていますが、あらたなログのパターンにぶつかっては直しを繰り返しています。次はログファイル名のソート機能をつけようか思案しています。何本も串刺しでログ解析することが多いので。

2010年7月1日木曜日

SAS Log Utilityのバグ修正中, セルの色ずれ

ExcelにCRUD表をエクスポートしたとき、色がずれ問題を解消するために、Excelの書式設定を変更します。これまではExcelの条件付書式でr, w, rwの色付けをしていました。条件付書式をやめて、Excelの置換の機能でr, w, rw, dの書式を設定します。dのセルは個別に書式設定していましたが、置換したほうが処理時間が短いはずです。

なぜか、Delphi+Excel置換の例が少なくトライ&エラーで正しい、というか動くコードを書きました。覚書として下にメモしておきます。

oExl.ReplaceFormat.Clear;
oExl.ReplaceFormat.Interior.ColorIndex := 41;
oSheet.Cells[1, 1].CurrentRegion.Replace(AnsiChar('w'), AnsiChar('w'), xlWhole, xlByRows, True, True, false, True);

2010年6月25日金曜日

SAS Log Utility 2つバグ見つけ

開発の覚書です。

256列を超えるCRUD表をエクスポートしたときに、削除の"d"とセルの色がずれています。これも、次のバージョンで直します。

2010年6月23日水曜日

SAS Log Utility 1つバグ見つけ

開発の覚書です。
使用者からの連絡で、DATAステップビューの情報も取り込んで欲しいと要望がありまし。やたらでかいSASログを放り込んだら、結構時間が掛かったのでこれも改善して欲しいとか。まずは時間を作らねば。

2010年4月25日日曜日

SAS Enterprise Guide Project Converter

古いSAS Enterprise Guide 2.0のプロジェクトファイルを変換するスクリプトを、Delphiで作り直しました。仕事で過去のプロジェクトファイルがたまっているときに、わざわざ手作業で移行するのはしんどいです。しかも2.0のプロジェクトは、直接4.2には移行できません。一度、EG4.1で保存する必要があります。

実行するためには、EG4.1、EG4.2が必要です。EG2.0を4.1に変換するときにはEG4.1、EG4.1のファイルを4.2に変換するときにはEG4.2の環境で実行します。

それと、コードをエクスポートする機能を付けました。バージョンアップにまつわる同じような問題を探すときに、1つ1つのプロジェクトファイルを開いて検索することは困難だからです。
機能を下に列挙します。
  • EG2.0のプロジェクトを4.1で保存
  • EG4.1のプロジェクトを4.2に保存
  • コードタスク、クエリタスクのコードをエクスポート
  • 元のファイルのタイムスタンプを引継ぎ
これもマイナーな要件だけに、Vectorには登録しません。


SAS Enterprise Guide 4.2 - CLASSが日本語

Enterprise Guide 4.2に変えたら、SASHLEP.CLASSの中身が日本語になっていることが気がつきました。テストコード書くときに不便です。何故か反応ももっさりしていて不満です。

2010年4月11日日曜日

SAS Option Report

PROC OPTIONS VALUE; の出力を表形式にまとめるツールを作成しました。仕事で、設定値を拾い集めるのが面倒なので、作りました。あまりパラメータを変えないのですが、仕事上は網羅性が大事ということで、全部のオプションを拾っています。Vectorにアップロードするかどうかは未定です。マイナーすぎて需要がなさそう。

2010年4月9日金曜日

SAS 9.2の新機能 SAS Download Managerとは?

SAS 9.2から新しく追加された SAS Download Managerが何物なのか調べました。結論としては、日本では使えないツールです。SASテクニカルサポートにも確認しました。

そもそものきっかけは、次の仕事に備えて、SAS9.2のソフトウェアデポに含まれているライセンスを更新しようとしたところから始まります。デポの管理でライセンス情報を更新しようとしたら、??あれSIDを入れ替えるボタンが無いことに気がつきました。

調べていくとSAS Download Managerでライセンス情報を更新するようになっていることが分かりました。使用法ガイドを読むと

>Javaで開発されたソフトウェアで、SAS社のリポジトリにアクセスして
>選択したソフトウェアオーダーをダウンロードするのに使います。

よくわからん説明です。この”オーダー”がライセンス情報で、既存又は新規のソフトウェアデポにオーダー情報を格納するのが、SAS Download Managerです。ここまでわかってほっとしたのですが、まだ落とし穴があります。

それは最初にSASから送られたOrder Noとインストールキーを入力しないと、SAS Download Managerからオーダー情報をダウンロードできないのです。次年度更新で送られるRenewalのオーダー情報は受け付けません。泣く泣く、メールボックスを探しますが見つかりません。

DVDのメディアに含まれていたOrder Noとインストールキーを入れたら「保留になりました」と、また分からないメッセージが出ます。使用説明にあるように契約部に電話したら、まったく話が通じなくてテクニカルサポートといったりきたりして困りました。分かったのは、SAS Download Managerは日本では使えない機能であること。配置イメージは無くなっていること。では、配置用イメージ相当の機能はあるかというと良く分からないような回答であきらめました。少し悲しいです。

2010年1月8日金曜日

Excel ファイルのヘッダとフッタの設定ユーティリティ

Vectorに公開されました。
Excelファイルの体裁を整えるのにどうぞ。

download

2010年1月7日木曜日

フェリスフー 幸せの風

今はもう無いけれど、足繁く通ったお店です。
ときどき思い出しては、あの味をもう一度としみじみ思うのです。


2010年1月5日火曜日

細かすぎる処理は読めない

次のユーティリティで煮詰めないといけないのは、下のようなグラフになってしまうから。
意味ある単位で、入出力を見せないといけない。SASはモジュール性が高いとはいえないが、マクロの書き方次第で、全体と部分を分けることができます。




2010年1月4日月曜日

次に作りたいもの

次に作りたいユーティリティを思案しています。
年末年始の休みを使ってユーティリティの実装を検討しました。ぱっと見るSAS Log Utilityと似ていますが、まだ煮詰めて行きます。このままでは、本格的なプログラムに使えないのはわかっています。これを使えるようにするには、コーディング上の工夫、または丸(プロセス)を集約する機能が必要です。