miau's blog?

| 1 |

2004年 5月 22日 (土曜日)

VB 入門書

- VB6 on miau's blog?
seraphyware homepage のフィードバックいろいろ(2004/5/16) に

> 私が思うに、J2EEは複雑な仕様であるにも関わらず(紙面の都合もあるでしょうが)信頼性の配慮に欠けたデモコードを見せて「ほら、こんなに簡単でしょ?」と無責任なことを書いている低俗雑誌あたりが悪いのではないでしょうか?

とか書いてあるのを見て思い出したネタ。結構長いので注意。
[Read More!]
07:22:40 - miau - No comments - No Trackbacks - Permalink

2004年 5月 08日 (土曜日)

VB6 + Visio2002Pro

- VB6 on miau's blog?
さて、Microsoft Visual Modeler はダメそうでしたけど。
Visio でも似たようなことができるらしいのでそちらの実験。
[Read More!]
18:55:08 - miau - No comments - No Trackbacks - Permalink

2004年 5月 05日 (水曜日)

VB6 + Microsoft Visual Modeler

- VB6 on miau's blog?
翔ソフトウェア (Sho's)オブジェクト指向について を参考にしつつ。

以前 VBReport を使ってソースコードの解析を行った際、クラスをふんだんに使ったプログラムにはこの方法は適さない、と書いた。
クラス図でも書ければなかなか有効な資料になるのだが、これを手軽に生成する方法はないものか。

とりあえず思いつくのは Visual Studio に含まれている Microsoft Visual Modeler。
ということで実験開始。 [Read More!]
23:57:14 - miau - No comments - No Trackbacks - Permalink

2004年 4月 29日 (木曜日)

CSVの読み込み@VB6

- VB6 on miau's blog?
仕事である関数のテストをしているのですが。
VB のフォームに TextBox が 30 個ほどちりばめられており、そこに値を入力してテストを行うことになってます。はっきり言ってかったるいです。

ということでテストドライバ製作者に「いちいち入力するの面倒だから CSV から読み込めない?」と尋ねてみると「うーん・・・僕もそう思ったんだけどね。○○さんが『そこまでしなくても』いいってさ。」との返答が。

あああ。また上の人がいいかげんな指示を。
それくらいのコーディング、VB でならすぐできるのに。

と思ったので本当にすぐできるのか試しに書いてみた。

要件:
・フォームに TextBox のコントロール配列がある
・CSV ファイルを読み込み、それぞれの TextBox に値をセットしたい

とりあえず1行分読み込みのサンプルということで。

Dim Params() As String
Dim i As Integer

ReDim Params(0 To Text1.Count - 1)

Open "test.csv" For Input As #1
Input #1, Params(0), Params(1), Params(2)
Close #1

For i = 0 To Text1.Count - 1
Text1(i) = Params(i)
Next

まず思いつく単純な方法。でもこれだとコントロール配列の Count が拡張された場合に対応できないし、30 個も並べるのは面倒。

ということで、こんな感じになるかな。

Dim Params As Variant
Dim Str As String
Dim i As Integer

Open "test.csv" For Input As #1
Line Input #1, Str
Close #1

Params = Split(Str, ",", -1)

For i = 0 To Text1.Count - 1
Text1(i) = Params(i)
Next

これだとダブルクォートとかカンマの処理がうまくできないけど、場合によってはこれでも十分なコードではないかと。タブ区切りとかになっても対応できるし。

ま、CSV 読み込みのサンプルコードなんてたくさんありそうなんで、そっち使ったほうがいいんでしょうけど。
03:02:08 - miau - No comments - No Trackbacks - Permalink

2004年 3月 30日 (火曜日)

Graphviz

- VB6 on miau's blog?
3月19日あたり、VBReport を使って VB のプログラムを解析してたわけだけど。

ツリー形式だと処理の流れはわかりやすいけど、ノード数が膨大になるので処理の概観がわかりにくい。1関数1ノードで、親:子が多:1になれるような図が書ければずいぶんすっきりしそうなもんだけど・・・。

とか考えてたら、友人が教えてくれました。

Graphviz

テキストファイルでリンク状態を定義しておいて、それをビジュアル化してくれるソフト、らしい。
(詳しくは dot user's guide(PDF) あたりを参照のこと)

さてさて、実験開始。
[Read More!]
01:29:53 - miau - No comments - No Trackbacks - Permalink

2004年 3月 19日 (金曜日)

VBReport

- VB6 on miau's blog?
特殊なケースにも対応しておいたので備忘録っぽく。
[Read More!]
03:23:39 - miau - No comments - No Trackbacks - Permalink

VBReport

- VB6 on miau's blog?
TYPersonal2 で配布されてるアプリケーションで、VBプロジェクトの構成を見ることができる。
関数の呼び出し関係がツリービューで表示されるので、他人の書いたプロジェクトで流れを把握したときなんかに便利。

・・・のだけど、例えば

Private Sub Hoge()
.
.
MsgBox("Hoge() でエラーが発生しました")
End Sub


みたいなコードがあると、Hoge()→Hoge() と再帰呼び出しを行ってると判断されて、ツリービューが無駄に深くなってしまう。(つまり、文字列判定を行っていないのだ)

今回のプロジェクトでは、「エラー処理の際は関数名を出力する」という決まりごとがあるようで、すべての関数で上記のように無駄な解析が行われてしまう。
こうなると解析には数十分かかるわ、完成したツリーも可読性が悪いわで使い物にならない。

幸いこのアプリケーションはソースも配布されてるので、ちょっといじってみました。
[Read More!]
01:54:03 - miau - No comments - No Trackbacks - Permalink
| 1 |