Command Line Usage

The easiest way to use vb2Py from the command line is by working in the vb2py directory in your Python site-packages location.

To check the basic usage from the command line:

> python -h

Two example projects should be installed in the folder, vb2py/vb/test1 and test2. To convert the test2 project (which is slightly more meaningful than test1!) to a PythonCard project, use the command:

> python -c vb/test/test2.vbp vb/test/test2

-c = convert the code also      
vb/test/test2.vbp = the VB project file for the project 
vb/test/test2 = the location of the generated Python files

The directory where the Python files will be put must exist before you run the conversion.

If you have PythonCard installed you can see what the forms look like by typing:

> python vb/test/test2/

You should see a form open with a lot of controls on it. Clicking on the controls should perform the same actions as for the VB version.


See the full form

For cases where you don't have a VB project file (*.vbp), you can still use the converter to convert individual files on at a time. The following command will convert the single code module in the test2 project:

> python -c -f vb/test/Utils.bas vb/test/test2

The code will be placed in the destination directory. Note that when doing file-by-file conversions certain parts of the conversion will not be possible. In particular, global variables will not be correctly handled since in order to determine the correct qualified name for a global, vb2Py needs to know all the files within the project.

For example, when converting an entire project the following code segment (where BASEDIR is defined in a module called FileGlobals):

Function addBaseDirectory(Path as String)
        addBaseDirectory = BASEDIR & Path ' BASEDIR is a global
End Function

Would be converted to:

def addBaseDirectory(Path):
        _ret = FileGlobals.BASEDIR + Path
        return _ret

However, if the file is translated on its own (using the -f command line switch) then it would be converted to:

def addBaseDirectory(Path):
        _ret = BASEDIR + Path
        return _ret