Author |
Topic: Passing info between programs (Read 2179 times) |
|
Alincon
Full Member
member is offline


Posts: 147
|
 |
Re: Passing info between programs
« Reply #17 on: Feb 25th, 2015, 11:24pm » |
|
I want to try the LBB approach of 'including' sub-programs instead of calling them. What I get is a "type mismatch" error message.
the called sub-program: Code:
function lookUpName$(typ$)
files deptPath$, info$(
fc = val(info$(0, 1)) ' folder count
for cf = 1 to fc
foldName$ = info$(cf, 0)
files foldName$, info2$(
fc2 = val(info2$(0,1))
for cf2 = 1 to fc2
fold2Name$ = info2$(cf2,0)
files fold2Name$, typ$, info3$(
fc3 = val(info3$(0,0)) 'file count
for cf3 = 1 to fc3
x$ = info3$(cf3,0)
if (right$(x$,3) = "sal" or right$(x$,3) = "hly") then
y$ = getFldr$(foldName$)
z$ = getFldr$(fold2Name$)
n = n + 1
emps$(n) = tb$(x$,28) + y$ +"\"+ z$ + "\"
end if
next cf3
next cf2
next cf
WindowWidth = 220: WindowHeight = 400
BackgroundColor$ = "cyan"
ListboxColor$ = "cyan"
statictext #elist.st1, "Employees", 60,5,55,20
listbox #elist.lb1, emps$(,[getEmp],2,24,217,375
Stylebits #elist.lb1, 0, _LBS_DISABLENOSCROLL, 0, 0
button #elist.btn1, "X", [noSelect],UL, 195,2,20,20
open "Employee List" for window_popup as #elist
#elist, "trapclose [empsClose]"
#elist, "font consolas 9"
#elist.lb1, "singleclickselect"
sort emps$(,1,n
#elist.lb1, "reload"
wait
[getEmp]
#elist.lb1, "selection? emp$"
fileName$ = deptPath$ +"\"+ mid$(emp$,29) + left$(emp$,28) ' 28 is forced length of emp name
goto [empsClose]
[noSelect]
fileName$ = "none"
[empsClose]
lookUpName$ = fileName$
close #elist
end function
the calling program (including old run statement, etc) Code:
' run "c:\libbas\_mylibbas\personnel\tokens\lookupNames.tkn ";"*.sal"
' open "C:\libbas\_mylibbas\personnel\fileNamePass.txt" for input as #pnt
' input #pnt, fileName$
' close #pnt
fileName$ = lookUpName$("*.*") ' the error line
if fileName$ = "none" then wait
goto [getCommon]
and the 'include statement (starting in col 1)
Code:
'include lookupNamesIncl.bas
r.m.
|
|
Logged
|
|
|
|
Richard Russell
Administrator
member is offline


Posts: 1348
|
 |
Re: Passing info between programs
« Reply #18 on: Feb 26th, 2015, 08:56am » |
|
on Feb 25th, 2015, 11:24pm, Alincon wrote:| I want to try the LBB approach of 'including' sub-programs instead of calling them. What I get is a "type mismatch" error message. |
|
It works for me. A 'Type mismatch' error is what you would get if the included file was not found since, in the absence of the FUNCTION definition, lookUpName$( looks like an array!
So, check that the included file has the correct name and that it is stored in the same directory as the calling program.
I deliberately arranged that 'include doesn't throw an error if the file isn't found, in case a program happened to have a 'regular' comment line starting with the word include. However that does mean that you can get an 'unexpected' error (such as your 'Type mismatch') rather than a more straightforward 'Include file not found'.
Richard.
|
|
|
|
Alincon
Full Member
member is offline


Posts: 147
|
 |
Re: Passing info between programs
« Reply #19 on: Feb 26th, 2015, 7:26pm » |
|
I figured that 'type mismatch' was not the real problem. The included code now executes w/o an error message, but the listbox that the code is supposed to fill is empty. Maybe there is another scope problem, since it is a function. Some times scope can be more of a problem than the code itself.
r.m.
|
|
Logged
|
|
|
|
|