
初歩的な質問で恐縮です。
「Delphi6」というツールを友人にすすめられ使いはじめました。
そもそもプログラムの知識などないのですが(VBAを少しやった程度です)、
いきなりは無謀でしょうか? それはともかく、目的はハードディスクにある特定のファイルをMOなどにコピーするだけです。コピーするファイルは常に同じです。イメージとしてはアイコンをクリックするだけでコピーし、コピー終了後に「コピーが終了しました」みたいなメッセージを表示するだけです。
ドライブにディスクが装着されていないなどのエラー処理も必要でしょうが、
とりあえずコピーができればOKです。
Helpをみると「CopyFile」という関数を使えばよさそうなのですが、文法がわかりません。どなたかお分かりの方お教えください(初歩的な質問でごめんなさい)。
No.1ベストアンサー
- 回答日時:
始めまして、Doubleと申します。
DelphiはCなどに比べれば敷居は低い方なのでチャレンジしてみる価値は有ると思いますよ
それでは質問内容のCopyFileの使い方ですが、リファレンスには
CopyFile(lpExistingFileName, lpNewFileName: PChar; bFailIfExists: BOOL): BOOL;
引数の説明としては
lpExistingFileName
コピー元のファイル名のキャラクター型ポインタ
lpNewFileName
コピー先のファイル名のキャラクター型ポインタ
bFailIfExists
コピー先に同名のファイルが存在していた場合の動作を指定
TRUE : 関数は異常終了し、コピーは行われない。
FALSE: 関数は正常終了し、上書きコピーされる。
の様に書かれています。
したがって以下のようにすれば実現出来ると思います。
(まあ、書き方には他にもいろいろ考えられますがとりあえず以下の方法で・・・(^^;)
function ExecFileCopy(FromF, ToF : String) : Boolean
begin
result := CopyFile(PChar(FromF),PChar(ToF),False);
end;
上記関数の呼び出し方は
if ExecFileCopy('C:\TEST.DAT', 'D:\TEST.DAT')
begin
//コピーが正常終了した時の処理
end else
begin
//コピーが異常終了した時の処理
end;
このようになります。
頑張ってください。
この回答への補足
早速の回答ありがとうございます。
上記を試してみたのですが、以下のエラーが出で動作しません。
function ExecFileCopy(FromF, ToF : String) : Booleanの部分で・・・
「文が必要な場所に`FUNCTION'があります」
if ExecFileCopy('C:\TEST.DAT', 'D:\TEST.DAT')の部分で・・・
「宣言が必要な場所に'IF'があります」
と出ます。入力ミスかと思い何度も見直したのですが、結果は同じでした。
お時間ありましたらお教えいただけますか?
ご回答ありがとうございます。
Delphiの基礎的なことも理解せず、いきなり目的だけ質問してすみません。
全体を学習しながら試させていただきます。ありがとうございました。
No.2
- 回答日時:
Doubleです。
すみません、一部文法ミスしていましたね・・・(^^;
誤)if ExecFileCopy('C:\TEST.DAT', 'D:\TEST.DAT')
正)if ExecFileCopy('C:\TEST.DAT', 'D:\TEST.DAT') then
です。
あと、「文が必要な場所に`FUNCTION'があります」のエラーの方ですが。
関数の書き方に宣言が必要でして
Typeのpublic節に
「function ExecFileCopy(FromF, ToF : String) : Boolean;」
を追加し
関数名には
「function (type名).ExecFileCopy(FromF, ToF : String) : Boolean;」
を付けてください。
文法等の詳細はヘルプの「Object Pascal言語ガイド」を参照すると理解出来ると思います。
これからもいろいろ有ると思いますが、頑張ってくださいね!(^^)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excel ハイパーリンク設定について 教えてください 例なんですが、 VBAにてファイル1の列Gに 2 2022/11/04 17:52
- その他(クラウドサービス・オンラインストレージ) OneDriveファイルのコピー時に容量不足エラー 2 2022/11/27 14:06
- バックアップ パソコンからDVDへコピー 5 2022/08/18 14:02
- フリーソフト AOMEI Backupper でバックアップが取れない 2 2022/07/17 22:28
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 12:30
- Windows 10 Corsair SSDが遅い (2)WDに比べて 3 2023/04/25 11:21
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
- Excel(エクセル) 関数を用いて表示したセルの内容を、見えている形でコピーする方法 2 2022/09/14 16:36
- Visual Basic(VBA) エクセルのマクロについて教えてください。 4 2023/05/24 08:33
- USBメモリー・SDカード・フラッシュメモリー ファイルをコピーできない 5 2022/09/23 10:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PDFファイルについて
-
エクセルで複数のコメントのサ...
-
同じファイル名 上書きしないフ...
-
C# でファイルのタイムスタンプ...
-
excel vba で複数ファイルの表...
-
バッチファイル XCOPYで上書き...
-
ファイルサーバ上のファイルが...
-
エクセルのハイパーリンクがコ...
-
サーバへファイルコピーについて
-
ExcelシートをコピーするとA4用...
-
frxファイルの役目
-
リモートデスクトップとVB.NET
-
Accessファイルをコピーすると...
-
開いている別のファイルにExcel...
-
ファイルをコピーできない
-
Vba初心者です。下記のコード助...
-
bat 同名ファイルコピー時にリ...
-
[エクセル]コピーするとオブジ...
-
エクセル2010、図が大きすぎま...
-
エクセル ファイルをコピー出...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで複数のコメントのサ...
-
ファイルサーバ上のファイルが...
-
Vba初心者です。下記のコード助...
-
MSオフィス2013にMS365が上書き...
-
同じファイル名 上書きしないフ...
-
バッチファイル XCOPYで上書き...
-
エクセルのハイパーリンクがコ...
-
frxファイルの役目
-
[エクセル]コピーするとオブジ...
-
xcopyでのバッチコピー方法でコ...
-
バッチファイル 別ファイルにリ...
-
bat 同名ファイルコピー時にリ...
-
バッチファイルのコピーで
-
アクセス クエリを別のファイ...
-
vbsでファイルやフォルダのコピ...
-
マインクラフトPCをプレイしよ...
-
エクセル2010、図が大きすぎま...
-
現在のブックを閉じないで、マ...
-
開いている別のファイルにExcel...
-
FTPとファイルコピーの違いにつ...
おすすめ情報