[Back to DIRS SWAG index]  [Back to Main SWAG index]  [Original]

{
JON KENT

Here's one way to set a File's path "on the fly" using Typed Constants.
}

Uses
  Dos;

Const
  TestFile1 : String = 'TEST1.DAT';
  TestFile2 : String = 'DATA\TEST2.DAT';
Var
  CurrentPath : String;

Function FileStretch(SType : Byte; FileFullName : String) : String;
Var
  P : PathStr;
  D : DirStr;
  N : NameStr;
  E : ExtStr;
begin
  P := FExpand(FileFullName);
  FSplit(P, D, N, E);
  if D[LENGTH(D)] = '\' then
    D[0] := CHR(PRED(LENGTH(D)));
  Case SType OF
    1 :  FileStretch := D;
    2 :  FileStretch := N + E;
    3 :  FileStretch := D + '\' + N;
    4 :  FileStretch := N;
    else FileStretch := '';
  end;
end;

begin
  CurrentPath := FileStretch(1,ParamStr(0));    { Get EXE's Path  }
  TestFile1   := CurrentPath + '\' + TestFile1; { Set DAT Paths   }
  TestFile2   := CurrentPath + '\' + TestFile2;

  {...}

end.
{-----------------------------}

{  if CurrentPath = C:\WORK then

       TestFile1 = C:\WORK\TEST1.DAT
       TestFile2 = C:\WORK\DATA\TEST2.DAT

  This works Really well when you want to store a Program's configuration
  File or data Files in the same directory as the Program regardless its
  location.
}

[Back to DIRS SWAG index]  [Back to Main SWAG index]  [Original]