home *** CD-ROM | disk | FTP | other *** search
/ Sauce 'n' Code 1 / sauce-n-code-01.adf / ASCII_Source / FileReq.asc < prev    next >
Text File  |  1995-05-07  |  4KB  |  128 lines

  1. ' -- EXAMPLE use of Requester -- 
  2. Screen Open 6,640,512,8,Hires
  3. Flash Off 
  4. Palette ,$FFF
  5. Cls 0
  6. Pen 6
  7. Paper 0
  8. For K=1 To 25 : Print String$("#",80) : Next K
  9. Proc REQUEST_FILE[7,70,0,150,"Select a TRACKER module",Dir$]
  10. Print Param$
  11. If Param$>""
  12.    Track Load Param$,3
  13.    Track Play 3
  14. End If 
  15. End 
  16. ' -- End Of EXAMPLE -- 
  17.  
  18.  
  19. Procedure REQUEST_FILE[SCR,RX,RY,RH,TITLE$,PATH$]
  20.    If Exist(PATH$)
  21.       ' Replacement File Requester 
  22.       ' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ 
  23.       ' cODED bY ßudda/NFA 
  24.       ' StARtEd : 27.02.1995 
  25.       ' FiNiSHed: 22.04.1995 
  26.       
  27.       ' -- Get Character Width & Height For File List -- 
  28.       RW=340
  29.       CH=(RH-60)/8
  30.       AMOUNT_OF_FILES=500 : Rem max amount of files to display 
  31.       Dim FILE_NAME$(AMOUNT_OF_FILES)
  32.       BACK_UP_DIR$=Dir$
  33.       
  34.       ' -- Define File Requester Interface Program --
  35.       FREQ$="BA "+Str$(RX)+","+Str$(RY)+";SI "+Str$(340+RX)+","+Str$(RH+RY)+";SA 1;"
  36.       FREQ$=FREQ$+"IN 3,0,0;GB BX,BY,SX,SY;"
  37.       FREQ$=FREQ$+"IN 2,0,0;GL BX,BY,BX,SY;GL BX,BY,SX,BY;GL BX4+,SY10-,SX,SY10-;GL SX3-,SY10-,SX3-,BY11+;"
  38.       FREQ$=FREQ$+"IN 1,0,0;GL BX,SY,SX,SY;GL SX,BY,SX,SY;GL BX,BY10+,SX,BY10+;GL BX4+,BY11+,BX4+,SY11-;"
  39.       FREQ$=FREQ$+"IN 0,0,0;GB BX5+,BY11+,SX4-,SY11-;"
  40.       FREQ$=FREQ$+"PR BX21+,BY1+,'"+Left$(TITLE$,36)+"',1;"
  41.       FREQ$=FREQ$+"AL 1,BX16+,BY14+,38,"+Str$(CH)+",0VA,0,2,0,1;[ZC 3,0VA ZP AR;]"
  42.       FREQ$=FREQ$+"VS 2,SX26-,BY14+,11,SY60-,0,"+Str$(CH)+",1VA1-,"+Str$(CH)+";[ZC 1,ZP;]"
  43.       FREQ$=FREQ$+"ED 3,BX20+,SY34-,40,40,'',0,1;ED 4,BX20+,SY43-,34,40,'',0,1;"
  44.       FREQ$=FREQ$+"IN 2,0,0;GL BX14+,BY13+,SX32-,BY13+;GL BX14+,BY13+,BX14+,SY45-;GL SX29-,BY13+,SX18-,BY13+;GL SX29-,BY13+,SX28-,SY45-;"
  45.       FREQ$=FREQ$+"IN 1,0,0;GL BX14+,SY45-,SX32-,SY45-;GL SX32-,SY45-,SX32-,BY13+;GL SX15-,BY13+,SX15-,SY45-;GL SX15-,SY45-,SX28-,SY45-;"
  46.       FREQ$=FREQ$+"GL BX4+,SY35-,SX4-,SY35-;GL BX4+,SY25-,SX4-,SY25-;"
  47.       FREQ$=FREQ$+"BU 5,SX100-,SY22-,80,15,0,0,1;[LI 0,0,28,80;PR 20,1,'OKAY',1BP+;][BR 0;]"
  48.       FREQ$=FREQ$+"BU 6,SX210-,SY22-,80,15,0,0,1;[LI 0,0,28,80;PR 12,1,'PARENT',1BP+;][BR 0;]"
  49.       FREQ$=FREQ$+"BU 7,BX30+,SY22-,80,15,0,0,1;[LI 0,0,28,80;PR 12,1,'CANCEL',1BP+;][BR 0;]"
  50.       
  51.       ' -- Open Screen For Requester (If not already open)--   
  52.       Trap Screen SCR
  53.       If Errtrap or Screen Colour<8
  54.          Screen Open SCR,640,(RY+RH)+1,8,Hires
  55.          Show On 
  56.          Flash Off 
  57.          Curs Off 
  58.          Palette $AAA,$0,$FFF,$68B,$999,$0,$AAA,$FFF
  59.          Cls 0
  60.          OWN_SCREEN=1
  61.          FREQ$=FREQ$+"BU 8,BX,BY,SX,BY10+,0,0,1;[][SM;BR 0;]"
  62.       End If 
  63.       Dialog Open 1,FREQ$+"EX;"
  64.       
  65.       ' -- Get Names OF Files In Current Dir --
  66.       _GET_DIR:
  67.       Dir$=PATH$
  68.       For FF=0 To AMOUNT_OF_FILES : FILE_NAME$(FF)="" : Next FF
  69.       TM$=Dir First$(PATH$)
  70.       F=0
  71.       While TM$<>""
  72.          If Left$(TM$,1)<>"*"
  73.             PP=29
  74.             For I=29 To 2 Step -1
  75.                KWS$=Mid$(TM$,I,1)
  76.                If KWS$=" "
  77.                   Dec PP
  78.                End If 
  79.                Exit If KWS$<>" "
  80.             Next I
  81.             
  82.             FILE_NAME$(F)=Mid$(TM$,2,PP-1)
  83.          Else 
  84.             FILE_NAME$(F)=Mid$(TM$,2)
  85.             Mid$(FILE_NAME$(F),30,5)="(Dir)"
  86.          End If 
  87.          TM$=Dir Next$
  88.          Inc F
  89.       Wend 
  90.       
  91.       ' -- Get The Requester Working --
  92.       Vdialog(1,0)=Array(FILE_NAME$(0))
  93.       Vdialog(1,1)=F
  94.       XXX=Dialog Run(1)
  95.       Dialog Update 1,4,PATH$
  96.       Do 
  97.          BT=Dialog(1)
  98.          If BT=1 and Mid$(Rdialog$(1,3),30,5)="(Dir)"
  99.             PATH$=PATH$+Rdialog$(1,3)-" "-"(Dir)"+"/"
  100.             Dialog Update 1,3,""
  101.             Goto _GET_DIR
  102.          End If 
  103.          If BT=3 or BT=5
  104.             SELECTED_FILE$=PATH$+Left$(Rdialog$(1,3),29)
  105.             Dir$=BACK_UP_DIR$
  106.             Exit 1
  107.          End If 
  108.          If BT=4
  109.             PATH$=Rdialog$(1,4)
  110.             Goto _GET_DIR
  111.          End If 
  112.          If BT=6
  113.             Parent 
  114.             PATH$=Dir$
  115.             Goto _GET_DIR
  116.          End If 
  117.          Exit If BT=7
  118.       Loop 
  119.       Dialog Close 1
  120.       If OWN_SCREEN=1 : Screen Close SCR : End If 
  121.    End If 
  122. End Proc[SELECTED_FILE$]
  123.  
  124.  
  125.  
  126.  
  127.  
  128.