home *** CD-ROM | disk | FTP | other *** search
/ Fujiology Archive / fujiology_archive_v1_0.iso / S / SEWER_S / LANGDSK1.ZIP / LANGDSK1.MSA / POWER_DE.MOS / DIR2STR.BAS < prev    next >
BASIC Source File  |  1987-04-22  |  1KB  |  57 lines

  1. ' this is an example of GEMDOS library usage. © HiSoft 1987
  2. ' the sub-program copies the filenames of files in the given directory
  3. ' into a string
  4. '
  5. ' SCS
  6. '
  7.  
  8. library "gemdos"
  9. rem $option v                                    'variable checks on
  10. defint a-z
  11.  
  12. dim shared dta(22)                                'our DTA
  13.  
  14.  
  15. do                                                'the main program
  16.     input path$
  17.     if len(path$)=0 then stop -1                'just hit return to quit
  18.     dirstr$=""
  19.     dir2str path$,dirstr$
  20.     print dirstr$
  21. loop
  22.  
  23.  
  24. sub dir2str(pathstr$,targstr$)
  25. static isitthere,olddta&,addr&,hold
  26.  
  27.     olddta&=FNfgetdta&                            'get the old dta
  28.  
  29.     fsetdta varptr(dta(0))                        'this is where we want it
  30.  
  31.     isitthere=FNfsfirst(pathstr$,0)                'look for the file
  32.  
  33.     if isitthere<0 then                            'no files available
  34.         fsetdta olddta&
  35.         exit sub
  36.     end if
  37.  
  38.     do
  39.         addr&=varptr(dta(15))
  40.         do                                        'look for null byte
  41.             hold=peekb(addr&)
  42.             if hold=0 then exit loop
  43.             targstr$=targstr$+chr$(hold)
  44.             incr addr&
  45.         loop
  46.  
  47.         targstr$=targstr$+chr$(13)+chr$(10)        'add cr-lf
  48.  
  49.         isitthere=FNfsnext                        'is there another file?
  50.         if isitthere<0 then                        'if not restore dta and exit
  51.             fsetdta olddta&
  52.             exit loop
  53.         end if
  54.     loop
  55.  
  56. end sub
  57.