[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]