Modula-2でプログラミング -- FileFindの制作 ― 2024年11月02日 11:36
FIleSearche"モジュールを利用した、ファイマッチで指定されたファイル一覧を書き出すプログラム "FileFind"を作ってみました。
使い方は、このようにします。
C0#filefind arguments>f*.mod *.def C:FIND.MOD C:FILEFIND.MOD C:FILESEAR.MOD C:CONIO.DEF C:ADD16.DEF C:SILLY.DEF C:FILESEAR.DEF C:STDFILEI.DEF C:BDOSSTRU.DEF C:BASICFIL.DEF C:CMDARGS.DEF C:SCREEN.DEF
探すファイル名は、ファイルマッチを指定できます。複数指定できます。 この引数を受け取るには、以前紹介した自作の"CmdArgs"モジュール を使用しています。
プログラムは、このようになりました。
MODULE FileFind; FROM InOut IMPORT WriteString,WriteLn; FROM CmdArgs IMPORT Argc,Argv; FROM FileSearch IMPORT MakeFileList,DumpFileList; CONST MAXLINE = 128; VAR FileMatch: ARRAY [0..MAXLINE-1] OF CHAR; nArgc: CARDINAL; NthFile: CARDINAL; PROCEDURE Usage(); BEGIN WriteString('Usage: filefind filematch');WriteLn; END Usage; BEGIN nArgc := Argc(); IF nArgc < 1 THEN Usage(); HALT; END; NthFile := 0; WHILE NthFile < nArgc DO Argv(NthFile,FileMatch); DumpFileList(MakeFileList(FileMatch)); INC(NthFile); END; END FileFind.
次々にファイルマッチを取り出し、該当するファイル名のリストを"MakeFileList"で作成し、 そのリストを"DumpFileLIst"で書き出します。"DumpFileList"は、"FileSearch"モジュールに実装しました。 こうすることで、ファイル名の保持のしかたをメインルーチンが知る必要がありません。
コメント
トラックバック
このエントリのトラックバックURL: http://kida.asablo.jp/blog/2024/11/02/9728491/tb
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。