#99 Article 453 Posted at 1992/09/17 17:15:33 by Mai (MAP2260) [Q.PASCSL]
Subject: Re:*17 まだ登録書も出してないパスカルの質問。 /452 ...... /433 /432
えーと、前にも書きましたように、デフォルト($M指定なし
では、TPで書かれたプログラムが、DOS上のフリーメモリを全て
(というのはちょっと正しくない表現ですが)ヒープメモリに割り当てるわけです。
ですから、$M指定の3番目をいじってやればいいわけです。
(デフォルトでは、32767,65536,655360かな?)
スタックは、TPのプログラムが使用するので、大き目に見ておいた方が
いいみたいです。
(TVisionとか使わなければ、16Kでも充分かも。
ファイルネームを渡したい、というのは、ワイルドカード*.ML1(ML1って
全然知らないんですがこれでいいんですよね?)と、FindFirst、
FindNextを使ってあてはまるファイル名を配列にでもほうりこんどけば
いいのではないかと思います。
フルパスファイル名=>ドライブ+ディレクトリ+ファイル名+拡張子みたいな
分解をやるのは、Str文びしばしで分解しないと駄目だと思いましたが。
TP for Winだと、FileSplitで一発なんですが。
ただ、実際問題として、フルパス名が分かれば十分だと思いますが・・・
あ、それともパス名は分かれてくるかな?
参考までに、私が作ったPRCGS画像メニュープログラムのファイル名検索部を
(一部ですが)次ぎに書いてみます。
(RCSファイルから切り出したから、多少狂ってるかも・・・)
begin
Attr:=AnyFile and not Directory;
p:='*.PRC';
FindFirst(p,Attr,S);
if DosError<>0 then begin
writeln('Error.');
Halt(1);
end;
i:=1;FileName[i]:=s.Name;
ReadID(i);
while (DosError = 0) and (i<MaxFile) do
begin
FindNext(S);
if DosError=0 then begin
inc(i);
FileName[i]:=s.Name;
ReadID(i);
end;
end;
FileNumber:=Pred(i);
end;
なんか、これで見る限りちゃんとディレクトリ/パス/ファイル名/拡張子を
分けて判断するみたいですね。
P.S.マニュアルというか、ライブラリリファレンスには、FindFirst,FindNextとも
出てます(^_^;)
Mai