2017-10-18 9 views
-1

2時間で同様の問題が発生し、IsFileInUseが使用され、使用されていることを確認してください。 MapObjectsLtを使用してjpgイメージを読み込みますが、私は少しファイルロックを理解していますが、このソフトウェアはWindows 7で完全に機能しました。今では新しいノートパソコンでWindows 10に移行しましたが、今はエラーが発生します。自分自身とWindowsエクスプローラは私が知っている唯一のユーザーですので、誰も開いているときにイメージを配置する小さなテキストファイルはありません。私は違いがWindowsにあると思う。 ProcExp.exeを使用して、そのファイルをロックしている/使用しているプロセスを調べましたが、その小さな6行ファイルが見つかりませんでした。私は自分のコードを変更し、最初にjgw/textファイルを変更する前にイメージをアンロードした後、リロードして再配置します。 MapObjectsLtがファイルをロックし、Windows 7が変更を許可した場合コード内でこれを何らかの形で変更しますか?つまり、重要なことを誰も知らずにハンドルを削除することです。ファイルを使用していますか?ReWrite(f)を使用したDelphi 7でのファイルアクセスエラープログラミング

procedure SaveWorldFile(FileName:TFileName); 
    var f:TextFile; i:Integer; Ext:String[4]; ImageFile:TFileName; 
    begin 
     ImageFile:=FileName; 
     if Pos('.SID',UpperCase(FileName))<>0 then Ext:='.sdw' else 
     if Pos('.JPG',UpperCase(FileName))<>0 then Ext:='.jgw' else Ext:='.tfw'; 
     FileName:=ChangeFileExt(FileName,Ext); 

     //tried to close the handle in this function..because 
     //I believe at this point I am the only one using this file. 
     //Did not work but was part of my hunt for a solution 
     //I used for a different reason but found on this site 
     IsFileInUse(FileName); 

     //This section worked before and last line reloads the image 
     //The image is "untouched" only its position changes 
     //This worked under Windows 7 now Windows 10 does not 
     AssignFile(f,FileName); 
     ReWrite(f); //error under Windows 10 
     for i:=1 to 6 do WriteLn(f,P[i]:0:8); 
     CloseFile(f); 

     //Now reload the image 
     frmWRM.AddImageLayer(ImageFile); 
    end; 
+0

ようこそスタックオーバーフロー!あなたの問題をより簡潔に説明して、他の人があなたがすでにやったことやあなたの問題が何であるかを理解できるようにしてください。質問を改善する方法については、https://stackoverflow.com/help/how-to-askを参照してください。 –

+0

あなたが取得しているコードと例外を投稿すると役に立ちます – GuidoG

答えて

0

私はWindows 10のエラーと考えていた時間が経過した後、あなたのサイトで解決策を見つけました。これは、ハードドライブにコピーされたファイルに対するアクセス許可です。一旦変更されると、私のソフトウェアは通常どおりに動作していました。あなたのサイトからのヒントをありがとう。

関連する問題