BBS: Inland Empire Archive Date: 04-03-92 (23:35) Number: 106 From: STEVE HALKO Refer#: NONE To: ZACK JONES Recvd: NO Subj: Help with subs Conf: (2) Quik_Bas
ZJ>'with the program. If I'm wrong, please point it out. I'm trying to ZJ>'pass the value of Source$ from the SUB back to the main program. ZJ>'Everytime I run this the print Source$ prints nothing. ZJ>DECLARE SUB GetFile (Source$) 'declare the subprogram ZJ>COMMON SHARED Source$ 'Make Source$ avail to all subs ZJ>CLS ZJ>DEFINT A-Z ZJ>Source$ = RTRIM$(LTRIM$(COMMAND$)) 'gets rid of any spaces ZJ>IF Source$ = "" THEN 'if no parameters are present ZJ> GetFile (Source$) 'call subprogram ZJ>END IF ZJ>PRINT Source$ 'after sub is done print contents ZJ> 'return to main program. ZJ> 'of Source$ ZJ>SUB GetFile (Source$) 'I've tried running it like this ZJ>DO WHILE Source$ = "" 'and with the STATIC keyword. ZJ>LOCATE 5, 2: PRINT "Name of file to get?" ZJ>LOCATE 5, 23: PRINT " " ZJ>LOCATE 5, 23: INPUT "", Source$ 'Get Source$ ZJ>LOOP ZJ>LOCATE 6, 23: PRINT Source$ 'Print value just to show what's ZJ>END SUB 'there First of all, if you're going to pass Source$ as a parameter, you don't need to make it SHARED unless there are other SUBs which also need it. And if you're going to make it SHARED, then you don't need to pass it as a parameter. It won't do any harm either way, though. Also, if you want to make it shared, you only need COMMON SHARED to share it with other modules. If you only have one module like you posted here, just use DIM SHARED Source$. Anyway, the problem is in the way you're calling GetFile. GetFile (Source$) means that you're passing Source$ by value. That means that your SUB gets a copy of the variable Source$. So GetFile can use it, but it can't change the original Source$ from your main code. You need to pass it by reference like this: CALL GetFile (Source$) or GetFile Source$ <-------- without parentheses To summarize: To pass a parameter by value - CALL MySub ((Parameter)) or MySub (Parameter) To pass a parameter by refernce - CALL MySub (Parameter) or MySub Parameter * SLMR 2.1a * DMD $ W( . --- DB B1063/002487 * Origin: Gulf Coast BBS -QuickSHARE #2- (904)563-2547 HST/V.32bis (1:365/12)
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