BBS: Inland Empire Archive Date: 11-18-92 (11:18) Number: 378 From: DIK COATES Refer#: NONE To: BOB SEWELL Recvd: NO Subj: Re: existing file check Conf: (2) Quik_Bas
>>>> QUOTING Bob Sewell to Jim Coyle <<<<
Generally try to avoid ON ERROR calls and take care of error
handling outside of BASIC because it brings in a whole bunch
of additional code, and bloats file sizes...some of the programs
I have written are over 1 meg in size and memory is really a
scarey thing!
Have posted one also using BASIC Functions...My actual method for
checking for file uses the same approach you have mentioned, only
in Assembly, as part of one of my own libraries. Also use NOT and
return -1. Should have mentioned it, because blending ASM with
BASIC has some real benefits. I have massaged the code that you
have loaded and have included it below. Have modified the 4th
line of code to use SSEG function. If the program is done in
Assembly, the executable code size is the smallest of all...
Using the DIR$ function (if available to compiler) gives the smallest
executable size, save actual ASM function, and doesn't require
loading the qbx library.
Using DIR$:
**********
FUNCTION FILEEXIST1% (FileName$)
IF LEN(DIR$(FileName$)) THEN
FILEEXIST1% = -1
END IF
END FUNCTION
Using InterruptX:
****************
FUNCTION FILEEXIST2% (FileName$)
temp$ = FileName$ + CHR$(0)
InRegX.AX = &H4E00 'find first matching file
InRegX.DX = SADD(temp$) 'offset of FileName$
InRegX.DS = SSEG(temp$) 'segment of FileName$
InRegX.CX = 0 'normal file, no dirs
CALL InterruptX(&H21, InRegX, OutRegX)
IF (OutRegX.FLAGS AND 1) = 0 THEN 'check if carry flag is set
FILEEXIST2% = -1
ELSE
FILEEXIST2% = 0
END IF
END FUNCTION
Executable file sizes for both approaches without using a CALL are as
follows:
using FILEEXIST1% and no function calls, gives EXE file size = 23140 bytes
using FILEEXIST2% and no function calls, gives EXE file size = 32837 bytes
Dik
... Stop!!! Don't touch that damn phon+dyT-+Dikuo/oon,H+
___ Blue Wave/QWK v2.10
--- Maximus 2.00
* Origin: Durham Systems (ONLINE!) (1:229/110)

Books at Amazon:
Back to BASIC: The History, Corruption, and Future of the Language
Hackers: Heroes of the Computer Revolution (including Tiny BASIC)
Go to: The Story of the Math Majors, Bridge Players, Engineers, Chess Wizards, Scientists and Iconoclasts who were the Hero Programmers of the Software Revolution
The Advent of the Algorithm: The Idea that Rules the World
Moths in the Machine: The Power and Perils of Programming
Mastering Visual Basic .NET