/* * $Id$ */ *+膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊 *+ *+ Source Module => D:\SRC\PBMAKE\PICKFILE.PRG *+ *+ PBMake is a Clipper, C, ASM, Xbase++ make engine. *+ *+ Copyright(C) 1996-1999 by Phil Barnett. *+ *+ This program is free software; you can redistribute it and/or modify it *+ under the terms of the GNU General Public License as published by the *+ Free Software Foundation; either version 2 of the License, or (at your *+ option) any later version. *+ *+ This program is distributed in the hope that it will be useful, but *+ WITHOUT ANY WARRANTY; without even the implied warranty of *+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *+ General Public License for more details. *+ *+ You should have received a copy of the GNU General Public License along *+ with this program; if not, write to the Free Software Foundation, Inc., *+ 675 Mass Ave, Cambridge, MA 02139, USA. *+ *+ You can contact me at: *+ *+ Phil Barnett *+ Box 944 *+ Plymouth, Florida 32768 *+ *+ or *+ *+ philb@iag.net *+ *+ *+ Functions: Function pickfile() *+ *+ Reformatted by Click! 2.03 on Mar-30-1999 at 11:19 pm *+ *+膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊膊 /* PICKFILE.PRG Author : Phil Barnett Written : 18-Apr-93 Function : PICKFILE() Purpose : Generic file picking routine that pops a picklist of files. Syntax : PICKFILE( [FILESPEC] ) Parameters : FILESPEC is a DOS filename. Wildcards permitted Returns : Character file name of selected file or "" if nothing picked. Example : yourfile := pickfile( '*.dbf' ) if empty(yourfile) ? 'You pressed Escape or No Matching File' else ? 'The file you selected is: '+yourfile endif Released to Public Domain by Author. */ #include "common.ch" #include "box.ch" #ifndef __HARBOUR__ #include 'hbclip.ch' #endif #include "directry.ch" *+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 *+ *+ Function pickfile() *+ *+ Called from ( makelink.prg ) 1 - function makelink() *+ ( pbinit.prg ) 1 - procedure pbinit() *+ *+北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北北 *+ function pickfile( cFileSpec ) local cOldString := savescreen( 8, 19, 16, 61 ) local aFiles as array := directory( cFileSpec ) local aPickList := {} local cRetVal := '' local sel default cFileSpec to '*.*' dispbox( 8, 19, 16, 61, B_SINGLE + " ", "+W/R" ) if len( aFiles ) > 0 aeval( aFiles, { | xx | aadd( aPickList, ; pad( xx[ F_NAME ], 13 ) + ; str( xx[ F_SIZE ], 8 ) + ' ' + ; dtoc( xx[ F_DATE ] ) + ' ' + ; xx[ F_TIME ] ) } ) sel := achoice( 9, 20, 15, 60, aPickList ) cRetVal := iif( lastkey() == 27, '', aFiles[ sel, 1 ] ) else achoice( 9, 20, 15, 60, { "No files match " + cFileSpec } ) endif restscreen( 8, 19, 16, 61, cOldString ) return cRetVal function pickafile( afiles ) local cOldString := savescreen( 8, 19, 16, 61 ) local aPickList := {} local cRetVal := '' local sel /*default cFileSpec to '*.*'*/ dispbox( 8, 19, 16, 61, B_SINGLE + " ", "+W/R" ) if len( aFiles ) > 0 /* aeval( aFiles, { | xx | aadd( aPickList, ; xx)} )*/ sel := achoice( 9, 20, 15, 60, aFiles ) cRetVal := iif( lastkey() == 27, '', substr(aFiles[ sel ],1,at(' ',afiles[sel])-1) ) endif restscreen( 8, 19, 16, 61, cOldString ) return cRetVal *+ EOF: PICKFILE.PRG