AssignFile の F : TextFile;←この部分

解決


まいたけ  2008-08-02 01:10:27  No: 31449

procedure TForm1.Button1Click(Sender: TObject);
var
  F : TextFile;
begin
  AssignFile(F, 'D:\AAA.txt');
  Rewrite(F);
  CloseFile(F);
  FileSetAttr('D:\AAA.txt', faHidden);
end;

F : TextFile;←この部分の質問なのですが。
かりにファイルがwmv.avi.doc.exe.dll
だったりする場合どういう表記になるのでしょうか?


にゃがにゃが  2008-08-02 02:15:07  No: 31450

F : File;
とかじゃダメなの?


まいたけ  2008-08-02 02:15:59  No: 31451

F : File;
にしたら実行できなかったりとかします。


まいたけ  2008-08-02 02:41:45  No: 31452

ただしいWin32ではありませんとかなります。


それは  2008-08-02 03:00:07  No: 31453

コードの書き方が悪いからだと思うよ。
どんなコード書いたのかな?


まいたけ  2008-08-02 03:09:12  No: 31454

普通に指定したEXEファイルを下記のコードで隠しファイルにしてるだけなんですが。

procedure TForm1.Button1Click(Sender: TObject);
var
  F : File;
begin
  AssignFile(F, 'C:\AAA.exe');
  Rewrite(F);
  CloseFile(F);
  FileSetAttr('C:\AAA.exe', faHidden);
end;

どうでしょうか?


igy  2008-08-02 03:16:11  No: 31455

OSは?
Delphiのバージョンは?
エラーは起動時に表示するのですか?
それともボタンをクリックしたときに表示するのですか?


まいたけ  2008-08-02 03:18:11  No: 31456

XP ターボDelhpiです。

できれば、起動時に行いたいです。
結果のファイルが0キロバイトになってしまいます。


igy  2008-08-02 03:20:29  No: 31457

>結果のファイルが0キロバイトになってしまいます。

それは、プログラムでそのようになるように作っているからでは?


というより  2008-08-02 03:24:13  No: 31458

>  FileSetAttr('C:\AAA.exe', faHidden);
これだけじゃ、マズイでしょ。
AAA.exeが隠しファイルだけじゃなくて、その他の属性も変っちゃうよ。
FileSetAttrのヘルプを良く読んでごらん。


まいたけ  2008-08-02 03:25:24  No: 31459

ん〜  0キロファイルを作っている結果になっているのでしょうか?
コピーしたらいいのですか?

コードかいていただけないでしょうか?


もそもそ  2008-08-02 03:30:28  No: 31460

なんで0KBになるのか知りたければヘルプでRewriteを調べれば出てます。
が、そもそもFileSetAttrするのにファイルを開く必要はありません。
その上の3行は(ファイルの中身を消して空にする以外)何の意味もなし。


igy  2008-08-02 03:32:14  No: 31461

>ん〜  0キロファイルを作っている結果になっているのでしょうか?

>  AssignFile(F, 'C:\AAA.exe');
>  Rewrite(F);
>  CloseFile(F);

これは、'C:\AAA.exe'を新規作成し、(なにも書き込まず)ファイルを閉じて
いるので、0キロバイトのファイルを作成していると思うのですが、
既存のファイルの属性を変えるだけでしたら、この処理が不要だと思うのですが。


もしかして  2008-08-02 03:38:57  No: 31462

ぺんね。=まいたけ
じゃないのかな?


まいたけ  2008-08-02 03:41:30  No: 31463

解決いたしました。w


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加