LB Booster
« Passing info between programs »

Welcome Guest. Please Login or Register.
Apr 1st, 2018, 05:19am



ATTENTION MEMBERS: Conforums will be closing it doors and discontinuing its service on April 15, 2018.
We apologize Conforums does not have any export functions to migrate data.
Ad-Free has been deactivated. Outstanding Ad-Free credits will be reimbursed to respective payment methods.

Thank you Conforums members.
Speed up Liberty BASIC programs by up to ten times!
Compile Liberty BASIC programs to compact, standalone executables!
Overcome many of Liberty BASIC's bugs and limitations!
LB Booster Resources
LB Booster documentation
LB Booster Home Page
LB Booster technical Wiki
Just BASIC forum
BBC BASIC Home Page
Liberty BASIC forum (the original)

« Previous Topic | Next Topic »
Pages: 1 2  Notify Send Topic Print
 hotthread  Author  Topic: Passing info between programs  (Read 2179 times)
Alincon
Full Member
ImageImageImage


member is offline

Avatar




PM


Posts: 147
xx 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.
User IP Logged

Richard Russell
Administrator
ImageImageImageImageImage


member is offline

Avatar




Homepage PM


Posts: 1348
xx 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.
« Last Edit: Feb 26th, 2015, 10:00am by Richard Russell » User IP Logged

Alincon
Full Member
ImageImageImage


member is offline

Avatar




PM


Posts: 147
xx 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.
User IP Logged

Pages: 1 2  Notify Send Topic Print
« Previous Topic | Next Topic »


This forum powered for FREE by Conforums ©
Terms of Service | Privacy Policy | Conforums Support | Parental Controls