2016-06-13 18 views
0

これらの関数でrelactiveパスを使用する正しい方法は何ですか?いくつか試してみましたが、絶対パスのみが正常に動作しました。ここにいくつかのコード例を示します。ありがとう!f.LoadFromfileとf.SaveToFileの相対パス

Procedure test; 
Var 
f : TStringList; 
trash: Cardinal; 
TempTime,SumTime : Cardinal; 
TimeInterno : TDateTime; 
begin 
    f := TStringList.Create; 
    f.LoadFromfile('D:\test\Ignores.txt'); 
    for Loop := 0 to f.Count-1 do 
    begin 
    Ignore(f.Strings[Loop].tointeger); 
    end; 
    f.Free; 
    FindType(-1,trash); 

      TimeInterno := Now; 
      f := TStringList.Create; 
      if not FileExists('D:\test\Ignores.txt') then 
      begin 
       f.SaveToFile('D:\test\Ignores.txt'); 
      end; 
      Wait(100); 
      if FileExists('D:\test\Ignores.txt') then 
      begin 
       f.SaveToFile('D:\test\Ignores.txt'); 
       Wait(100); 
       f.LoadFromfile('D:\test\Ignores.txt'); 
      end; 
      f.add(IntToStr(findType(-1,Ground))); 
      f.SaveToFile('D:\test\Ignores.txt'); 
      f.Free; 
      Ignore(trash); 
      Wait(200); 
      trash := FindType(-1,Ground); 
      UseObject(trash); 

答えて

1

相対パスは正常に動作するはずですが、相対的であると想定しているものが正しいことを確認してください。現在の作業ディレクトリとの相対パスである必要があります。必ずしも.exeディレクトリと同じではありません。

ほとんどのプラットフォームでは、相対パスをexeディレクトリに追加することで回避できます。

sExePath := ExtractFilePath(paramstr(0)); 

してから使用し

appendtrailingpathdelimiter(sexepath)+yourrelativepathvarorexpression;