CREATELIB "GetDir" PROC CLOSED GetDir() ;By Arnold Jagt Version 1.1 ;Copyright (c) 1990 EDS ; ;GetDir() solves the problem of Paradox's deficiency in providing an ;easy way to move amoung subdirectories when making menu choices for tables ;and scripts, etc. ;Read the "readme" file first. ;You must have the line ; ;setkey 10 RUN NOREFRESH "GetDir!" PLAY "GetDir!" ; ;in your "init.sc" ;and the "GetDir!.exe" and "GetDir!.sc" and "GetDir.sc" in you home directory. ; ; History: ; 07/02/90 - Version 1.1 - Fixed so that GetDir would work in any System Mode. ; IF NOT ISFILE("{GETDIR}.!~@") THEN BEEP KEYPRESS 10 QUIT ENDIF Errorproc = "Handler" PROC Handler() Private Errorproc QUIT Errormessage() ENDPROC dirname.a = "Esc" x=1 ARRAY menchoice.a[20] WHILE (True) KEYPRESS "ESC" IF MENUCHOICE() = "Error" THEN KEYPRESS "Menu" QUITLOOP ENDIF ; IF MENUCHOICE() = "" THEN LOOP ENDIF menchoice.a[x] = MENUCHOICE() x=x+1 IF MENUCHOICE() = "View" THEN QUITLOOP ENDIF ENDWHILE SHOWFILES NOEXT "*.!@~" "Choose Directory" TO dirname.a IF dirname.a = "Esc" OR RetVal = False Then QUIT ENDIF IF dirname.a = "Parent" then dirname.a = DIRECTORY() match.l = MATCH(dirname.a,"..\\..",drv.a,dirname.a) match.l = MATCH(dirname.a,"..\\..",path1.a,dirname.a) match.l = MATCH(dirname.a,"..\\..",path2.a,dirname.a) match.l = MATCH(dirname.a,"..\\..",path3.a,dirname.a) match.l = MATCH(dirname.a,"..\\..",path4.a,dirname.a) match.l = MATCH(dirname.a,"..\\..",path5.a,dirname.a) SWITCH CASE ISASSIGNED(path5.a) : dirname.a = drv.a + "\\" + path1.a + "\\" + path2.a + "\\" + path3.a + "\\" + path4.a CASE ISASSIGNED(path4.a) : dirname.a = drv.a + "\\" + path1.a + "\\" + path2.a + "\\" + path3.a CASE ISASSIGNED(path3.a) : dirname.a = drv.a + "\\" + path1.a + "\\" + path2.a CASE ISASSIGNED(path2.a) : dirname.a = drv.a + "\\" + path1.a CASE ISASSIGNED(path1.a) : dirname.a = drv.a ENDSWITCH ENDIF dirname.a = dirname.a + "\\" IF NOT ISASSIGNED(menchoice.a[1]) THEN KEYPRESS "Enter" ELSE FOR y FROM x-1 TO 1 STEP -1 IF menchoice.a[y] = "" THEN KEYPRESS "Enter" LOOP ENDIF SELECT menchoice.a[y] ENDFOR ENDIF SELECT dirname.a ENDPROC writelib "GetDir" GetDir release procs GetDir