Скачать Что спрятано под SUBST

29.11.1997
Скачать файл (1,13 Кб)




Uses
  Dos ;
 
Function CanonicalName( Path : String ) : String ;
(*
   Errors in InOutRes :
          0 : OK
          2 : invalid source name
          3 : invalid device or malformed path
       else : ?
*)
Var
  Reg : Registers ;
  S   : String[128] ;
  P   : String[128] ;
begin
  P := Path + #0;
  With Reg do
  begin
    AH := $60 ;
    DS := Seg(P[1]) ;
    SI := Ofs(P[1]) ;
    ES := Seg(S[1]);
    DI := Ofs(S[1]);
    MsDos(Reg) ;
    if Odd(Flags) then
    begin
      InOutRes := AX ;
      CanonicalName := '' ;
    end
    else
    begin
      InOutRes := 0 ;
      S[0] := #128 ;
      S[0] := Chr(Pos(#0,S)-1) ;
      CanonicalName := S ;
    end ;
  end ;
end ;
begin
  WriteLn(CanonicalName(ParamStr(1))) ;
  WriteLn('IOResult = ',IOResult) ;
end.