BBS: Inland Empire Archive Date: 10-11-92 (14:55) Number: 323 From: JOHN GALLAS Refer#: NONE To: VICTOR YIU Recvd: NO Subj: Error checking in QB Conf: (2) Quik_Bas
VY>I have been having to writing a "shell" for each thing... like a function VY>called OpenFile that returns success/failure and error checking occurs VY>in there... How about if in OpenFile it checks if the file exists or not before it opens it? Heres a function that'll check for the existance of a file: DECLARE FUNCTION FileExists% (FileName$) ' 'In order to use the above function, you must have started QuickBASIC 'from the command line using the /L switch. e.g. "QB /L" 'Now include the following lines in the main body of your code: ' ' $INCLUDE: 'QB.BI' DIM SHARED Register AS RegTypeX ' 'You may now use this routine to test for the existence of any file 'as follows: ' File$ = "C:\AUTOEXEC.BAT" IF FileExists(File$) THEN PRINT "yes, "; File$; " does exist" ELSE PRINT "no, "; File$; " does not exist" END IF ' 'The function returns True (-1) if the file exists and False (0) if 'it does not exist. 'To test for the existence of any directory, you may use the same 'function and take advantage of the fact that the NUL device is treated 'by DOS as a file that exists in every directory. Thus: ' Dir$ = "C:\DOS" IF FileExists(Dir$ + "\NUL") THEN PRINT "yes, the directory "; Dir$; " does exist" ELSE PRINT "no, the directory "; Dir$; " does not exist" END IF ' ' FUNCTION FileExists% (FileName$) STATIC ' ' *** set new DTA DTA$ = SPACE$(128) Register.ax = &H1A00 Register.ds = VARSEG(DTA$) Register.dx = SADD(DTA$) CALL INTERRUPTX(&H21, Register, Register) ' ' *** get first matching file Register.ax = &H4E00 Register.cx = &H6 TempFileName$ = FileName$ + CHR$(0) Register.ds = VARSEG(TempFileName$) Register.dx = SADD(TempFileName$) CALL INTERRUPTX(&H21, Register, Register) FileExists% = ((Register.flags AND 1) = 0) DTA$ = "": TempFileName$ = "" ' END FUNCTION There ya go! * OLX 2.1 TD * Computer Programmer Wanted; Some assembly required. --- RyPacker v2.5 * Origin: The Ghost Mode - An RyBBS System! (612)-688-0026 (1:282/3006)
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