2016-06-13 16 views
0

Was ist der richtige Weg, den relactive Pfad für diese Funktionen zu verwenden? Versuchte etwas, aber nur absoluter Pfad funktionierte gut. Hier ist ein Codebeispiel zur Veranschaulichung. Vielen Dank!Relativer Pfad auf f.LoadFromfile und 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); 

Antwort

1

Relative Pfad sollte in Ordnung sein arbeiten, aber stellen Sie sicher, was Sie unter der Annahme, in Ordnung zu sein in Bezug auf ist. Es sollte relativ zu dem aktuellen Arbeitsverzeichnis sein, das nicht immer das gleiche wie das .exe-Verzeichnis ist.

Auf den meisten Plattformen können Sie dies umgehen, indem Sie Ihre relativen Pfade zum exe-Verzeichnis hinzufügen, z.

sExePath := ExtractFilePath(paramstr(0)); 

und verwenden Sie dann

appendtrailingpathdelimiter(sexepath)+yourrelativepathvarorexpression;