|
|
CANONIC.PAS |
|
{* Что спрятано под SUBST *}Unit CANONIC;Interface Implementation Begin writeln(' Определение канонического имени драйва, созданного по SUBST'); End. Program pas; Uses 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...... 07.08.2014 - Breakpoint - точка остановки 07.08.2014 - Топ-10 самых популярных приложений в Facebook 18.11.2013 - Панель управления и персонализация системы. Windows Vista 18.11.2013 - Логические и физические диски. Windows Vista 18.11.2013 - Удаление файлов и папок 01.11.2013 - Программирование дисковых подсистем: возможности 31.10.2013 - Windows8 или Windows7? 31.10.2013 - Windows8, игры |
|
Non-commercial fansite
|