かなり飛び飛び

久しぶりに、キーボードを叩きまくる羽目に陥る。
会社の人に頼まれて、ディレクトリ内のファイルを管理するソフトもどきを作ることに。
気分転換になると思い、軽く返事をしたのはいいが予想外に難渋する。

ど素人プログラマー御用達の Visual Basic なるものを御存知だろうか。
今、古臭いVer.6が手元にあり、それでコードを組むことに…。
どういうわけかヘルプデータベースが壊れている模様で、ヘルプを参照できないのが
非常につらいところだ!。
半分壊れかけのこのクソPC(VAIOはやっぱ駄目ですな)でテストしたところで
ちゃんと会社に持って行っても動いてくれるのかしら?

使用Object:
DirListBox/ディレクトリ表示用
MSFlexGrid/Excelもどきで表を表示する

さて、環境が異なるためAPP関数の使用は極力控えることにする。
作成しているPCがWin98,使用環境がWin2000とXPの混在条件。必要なDLLがちゃんと
揃っているのか?かなり不安だ!。返事するときにはこれっぽちも考えていなかったのだが。

今回はDir関数がメインとなる感じだ。
Dir関数でサブフォルダの一覧を作成するには、基本的に
VarFname=Dir(MainPosition.Path)
Do Until(Len(VarFname=0))
Strage(n)=VarFname
VarFname=Dir
n=n+1
Loop
この構文でいいだろう。
これで配列にフォルダ内の内容物一覧として取得できる。
ただし、サブフォルダを見る際には、VarFname変数がStr型の場合、何故かエラーになってしまう
ので、Variant型にする必要がある。

とにかく、よくわからんときはVariant型だ。なんでも食ってしまうこの変数型は、上手に使うと
変態的なコードを組むことができる。中〜上級者を自認する人たちは、チャレンジしてみては如何?

さてもう一つ、これで取得をすると『・・』と『・』という隠しファイルを拾うことができる。
unix等ではお馴染みだが、・・は親ディレクトリへのリンクファイル,・は本体へのリンクファイル
となる。
そこで


VarFname=Dir(MainPosition.Path)
Do Until(Len(VarFname=0))
 if not instr(VarFname,"・") then
Strage(n)=VarFname
VarFname=Dir
n=n+1
end if
Loop
この構文でいいだろう。今回はファイルの類も除外しなきゃならんので一石二鳥だ!。
運用時にはフォルダ名にピリオドと¥を使っちゃ駄目。というルールを適用するつもりだ。