Welcome to my programming blog!

With some luck you will find some tasty nuggets of information here. If you do find something please post a comment on where or how you used it. I like to see what sort of impact my work has on others. There is not much frill here but that is not why you came.

Wednesday, February 08, 2006

FOXPRO: Using a filesystem object instead of ADIR()

ADIR() is a very bad thing. Large directories are very very slow to read and can even crash with TOO MANY VARIABLES because of the foxpro array limitation. This snippet allows me to get around that.



include_once('/home/rwmech/public_html/robsprogrammingjunk/geshi/geshi.php');

$source = <<
loFSO=CREATEOBJECT('Scripting.FileSystemObject')
lsDrive=SYS(5)
loFolders=loFSO.GetFolder(lsDrive+'\\\somefolder')
FOR EACH loSomeFolder IN loFolders.Subfolders
IF !FILE(lsDrive+'\\\somefolder\\\'+ALLT(loSomeFolder.NAME))
WAIT WINDOW 'Checking '+ lsDrive+'\\\somefolder\\\'+ALLT(loSomeFolder.NAME) NOWAIT
FOR EACH loFile IN loSomeFolder.FILES
* DO SOMEHTING WITH THE FILE
* lsDrive+'\\\somefolder\\\'+ allt(loSomeFolder.Name)+'\\\'+allt(loFile.Name)
ENDFOR
ENDIF
ENDFOR
RELEASE loFolders
RELEASE loFile
RELEASE loFSO
WAIT CLEAR


END;

$geshi = new GeSHi($source, 'visualfoxpro');
$geshi->set_header_type(GESHI_HEADER_DIV);
$geshi->set_overall_style('font-family: Courier New , Courier, Monospace; font-size: 8pt; word-wrap:break-word;');
$geshi->set_comments_style(1, 'color: #006600;');
$geshi->set_comments_style('MULTI', 'color: #006600;');
$geshi->set_header_content('Code Example © Robert Mech. May be used freely as long as credit is given to the source.');
$geshi->set_header_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-weight: bold; background-color: #f0f0ff; border-bottom: 1px solid #d0d0d0; padding: 2px;');
$geshi->set_footer_content('If you use this code, please make a comment on the blog!');
$geshi->set_footer_content_style('font-family: Verdana, Arial, sans-serif; color: #808080; font-weight: bold; background-color: #f0f0ff; border-top: 1px solid #d0d0d0; padding: 2px;');

echo $geshi->parse_code();
?>

This page is powered by Blogger. Isn't yours?