Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Дисковые Программы и Утилиты    >>    canonic
   
 
 Что спрятано под SUBST   Victor Snopov 29.11.1997

Определение канонического имени драйва, созданного по SUBST



1k 
 

- 4INT ----------------------------------------------------- It's interesting - Msg : 40 of 202 Addr Date From : Victor Snopov 2:5030/312.66 29.11.97 Subj : Что спрятано под SUBST ------------------------------------------------------------------------------- Hi, Roman! 07 Nov 1997 at 23:22 you wrote to All: RK> Хай All! RK> Cлушайте ка, а как узнать куда и откуда SUBST напpавлен??? RK> Hу напpимеp, пишу SUBST X: C:\NEWS, потом в cпиcке вcех дpайвов RK> знаю что X: - это cубcтовый дpайв, вот как мне cобcно получить этот RK> C:\NEWS ??? Через Int21h/60h See you, Victor. --- timEd/386 1.10+ * Origin: Vitka Station St.Petersburg, Russia (2:5030/312.66) {> Cut here. FileName= CANONIC.PAS } {Определение канонического имени драйва, созданного по SUBST} 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.