掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ファイル操作でファイルを削除するには? (ID:20311)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
//旧ファイルの内容を新規ファイルに移す。 procedure CopyIndexData(kisyu:String; NewKibanMin:Integer; NewKibanMax:Integer); var OldData: VistaAdmin.TForm1.VistaIndexFormat;//レコード型 NewData: VistaAdmin.TForm1.VistaIndexFormat; OldIndexFileP: File of VistaAdmin.TForm1.VistaIndexFormat; //型付きファイルの宣言 NewIndexFileP: File of VistaAdmin.TForm1.VistaIndexFormat; OldIndexFName: String; //Index NewIndexFName: String; //NewIndex RecPos: Integer; begin OldIndexFName:= VistaAdmin.TForm1.VistaDataFolder +kisyu+ '\Index'; NewIndexFName:= VistaAdmin.TForm1.VistaDataFolder +kisyu+ '\NewIndex'; //他のprocedureの中で、既に新規作成しデフォルト値を入れてる。 AssignFile(OldIndexFileP, OldIndexFName); AssignFile(NewIndexFileP, NewIndexFName); Reset(OldIndexFileP); Reset(NewIndexFileP); while not Eof(OldIndexFileP) do begin Read(OldIndexFileP, OldData); RecPos:= OldData.Kiban - NewKibanMin; //登録するレコード番号を算出 Seek(NewIndexFileP, RecPos); Read(NewIndexFileP, NewData); //念のため、NewIndexとIndexに記録されている機番を照合する if NewData.Kiban=OldData.Kiban then begin //OKならばNewIndexにOldDataの内容を記録し、違えばエラーとし中断 Seek(NewIndexFileP, RecPos); Write(NewIndexFileP, OldData); end else begin // NewData.Kiban=OldData.Kibanでなかった場合の処理 Exit; end; end; CloseFile(OldIndexFileP); CloseFile(NewIndexFileP); ShowMessage('転記完了'); //DeleteFile RenameFile ができない。 なぜでしょう? if DeleteFile(OldIndexFName) then ShowMessage('旧インデックス(Index)を削除しました。') //Indexを削除 else ShowMessage('失敗!! 旧インデックス(Index)の削除に失敗しました。'+#10+'プログラム終了後に削除してください。'); if RenameFile(NewIndexFName, OldIndexFName) then ShowMessage('NewIndexをIndexにファイル名変更しました。') // NewIndexをIndexに変更 else ShowMessage('失敗!! ファイル名の変更に失敗しました。'+#10+'NewIndexをIndexにファイル名変更してください。'); end; コードは以上ですが、別途簡単なプログラムの中でおこなうと問題無く、削除、ファイル名変更ができました。何が問題なのでしょうか? 益々分らなくなってきました。 よろしくお願いします。
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.