Subject |
Re: ?array |
From |
Charlie <tm@tc.com> |
Date |
Tue, 13 Nov 2018 14:39:17 -0500 |
Newsgroups |
dbase.getting-started |
Hi Mervyn. Thanks so much for these. These or a combination will do the trick!
Mervyn Bick Wrote:
> On 2018-11-12 11:10 PM, Charlie wrote:
> > I think this is going to require an array which I have little experience with. I may be wrong, so if it is possible to do this without an array, please let me know.
> >
> > I am trying to find what tables are located on a flash drive directory. (Not associated with a database.) I would like to identify them and display the content of the directory so one or all can be chosen to import.
> >
> > What would be the best way to display them and how that might work.
> >
> > Thanks for any help.....
> >
>
> As with most things in dBASE there is more than one way to tackle this.
>
> For "quick and dirty" you could use the dBASE function getfile(). See
> the attached select_file.wfm.
>
> A more elegant way is to use some routines from the dUFLP. See
> list_files.wfm. If you really want to this could be expanded to use a
> treeview instead of a plain listbox.
>
> The one draw back with list_files.wfm is that it only sees flash drives
> which are plugged in when the form opens. If you plug another flash
> drive in while the form is open you will need to close the form and then
> reopen it.
>
> Mervyn.
>
>
> ** END HEADER -- do not remove this line
> //
> // Generated on 2018-11-13
> //
> parameter bModal
> local f
> f = new select_fileForm()
> if (bModal)
> f.mdi = false // ensure not MDI
> f.readModal()
> else
> f.open()
> endif
>
> class select_fileForm of FORM
> with (this)
> height = 16.0
> left = 26.7143
> top = 5.6818
> width = 78.4286
> text = ""
> endwith
>
> this.PUSHBUTTON1 = new PUSHBUTTON(this)
> with (this.PUSHBUTTON1)
> onClick = class::PUSHBUTTON1_ONCLICK
> height = 1.0909
> left = 29.8571
> top = 5.0
> width = 15.2857
> text = "Select File"
> endwith
>
> this.ENTRYFIELD1 = new ENTRYFIELD(this)
> with (this.ENTRYFIELD1)
> height = 1.0
> left = 7.0
> top = 10.0
> width = 61.0
> value = ""
> endwith
>
> this.TEXTLABEL1 = new TEXTLABEL(this)
> with (this.TEXTLABEL1)
> height = 1.0
> left = 32.0
> top = 8.5
> width = 18.0
> text = "Selected file"
> endwith
>
>
> function PUSHBUTTON1_onClick()
> form.entryfield1.value = getfile()
> return
>
> endclass
>
> ** END HEADER -- do not remove this line
> //
> // Generated on 2018-11-13
> //
> parameter bModal
> local f
> f = new list_filesForm()
> if (bModal)
> f.mdi = false // ensure not MDI
> f.readModal()
> else
> f.open()
> endif
>
> class list_filesForm of FORM
> with (this)
> onSize = class::FORM_ONSIZE
> onOpen = class::FORM_ONOPEN
> height = 22.1364
> left = 35.4286
> top = 2.5
> width = 53.1429
> text = ""
> endwith
>
> this.COMBOBOX1 = new COMBOBOX(this)
> with (this.COMBOBOX1)
> onChange = class::COMBOBOX1_ONCHANGE
> onOpen = class::COMBOBOX1_ONOPEN
> height = 1.0
> left = 5.0
> top = 2.0
> width = 31.0
> style = 1 // DropDown
> endwith
>
> this.LISTBOX1 = new LISTBOX(this)
> with (this.LISTBOX1)
> onSelChange = class::LISTBOX1_ONSELCHANGE
> height = 13.0
> left = 5.0
> top = 6.0
> width = 44.0
> id = 102
> colorHighLight = "HighLightText/HighLight"
> endwith
>
> this.TEXTLABEL1 = new TEXTLABEL(this)
> with (this.TEXTLABEL1)
> height = 1.0
> left = 5.0
> top = 0.5
> width = 18.0
> text = "Removable Drives"
> endwith
>
> this.ENTRYFIELD1 = new ENTRYFIELD(this)
> with (this.ENTRYFIELD1)
> height = 1.0
> left = 5.0
> top = 20.0
> width = 44.0
> value = ""
> endwith
>
> this.TEXTLABEL2 = new TEXTLABEL(this)
> with (this.TEXTLABEL2)
> height = 1.0
> left = 16.0
> top = 4.0
> width = 21.0
> text = "Form can be resized"
> endwith
>
>
> function COMBOBOX1_onChange()
> form.entryfield1.value = ''
> aFiles = new array()
> oFiles = new FileRecurser(substr(this.value,1,at(':',this.value) ))
> oFiles.processFile := {|d,f|; aFiles.Add(d + f)}
> oFiles.search()
> form.listbox1.datasource = 'array aFiles'
> return
>
> function COMBOBOX1_onOpen()
> this.value = 'Select drive'
> return
>
> function LISTBOX1_onSelChange()
> form.entryfield1.value = this.value
> return
>
> function form_onOpen()
> set procedure to :duflp:miscWSH.prg
> set procedure to :dUFLP:FileRecurser.cc
> set procedure to :duflp:miscapi.prg
> aDirs = new array()
> fso = new OleAutoClient("Scripting.FileSystemObject").drives
> a = new array(fso.count,2)
> for n = 0 to fso.count-1
> a[n+1,1] = fso[n].path
> a[n+1,2] = getDriveType(fso[n].driveType)
> next
> for n = 1 to a.size step 2
> if a[n+1] = 'Removable'
> cVol = getlabel(a[n]) // get volume label
> aDirs.add(a[n]+' '+cVol)
> endif
> next
> form.combobox1.dataSource = 'array aDirs'
> return
>
> function form_onSize(nSizeType, nWidth, nHeight)
> form.listbox1.width = this.width - 10
> form.listbox1.height = this.height - 10
> form.entryfield1.width = this.width - 10
> form.entryfield1.top = form.height - 2
> return
>
> endclass
>
|
|