VB6の関数一覧を出力する

by 山口 21. 4月 2009 13:53

ちょっとした小ネタです。

VB6のソースから関数の一覧を抜き出したいと言われたので、PowerShellでサクっと作ってみました。

Get-ChildItem -recurse -include *.bas | % {[string]::Join("`n", ((Get-Content $_) | % { $_.Trim() })).Replace("_`n", "").Split("`n") | ? { $_ -match "Public (Sub|Function)" }}

これを実行するとカレントディレクトリとその配下にあるディレクトリからVB6のモジュールファイルを検索して、その中に定義されているPublicな関数とプロシージャが標準出力に出力されます。

調子に乗ってワンライナーで書いたので読みづらいですが、やっている事は、

  1. Get-ChildItemでカレントディレクトリとその配下にある「.bas」ファイルを検索する。
  2. Get-Contentでファイルの内容を配列で取得する。
  3. string.Trimメソッドで各要素の先頭と末尾のスペースを削除する。
  4. string.Joinメソッドで、その配列を改行コードで連結する。
  5. string.Replaceメソッドで、"_" + 改行コードを削除する(VBの_改行を削除する)。
  6. string.Splitメソッドを使って、改行コードで分割する。
  7. 正規表現を使って、関数の定義を探す。

となります。

こういった処理が一行で書けてしまうのもPowerShellの魅力のひとつですね。

最新のブログ

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

PowerShell

コメント

コメントを書く


 

  Country flag

biuquoteredbluegreenyellowPowerShellTextFile
  • コメント
  • プレビュー
Loading



Calendar

<<  3月 2010  >>
月曜火曜水曜木曜金曜土曜日曜
22232425262728
1234567
891011121314
15161718192021
22232425262728
2930311234

View posts in large calendar
Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010 PowerShell from Japan!!