Author Topic: Bcx 7.5.2 Available for Download  (Read 137 times)


  • Administrator
  • Hero Member
  • *****
  • Posts: 641
    • View Profile
Bcx 7.5.2 Available for Download
« on: August 05, 2020, 11:18:34 AM »
Hello Everyone,

This version has some new and updated features.

If you find a bug, please report it on this forum under Bug Reports.



Code: [Select]

2020/08/05    : Changes in 7.5.2 from 7.5.1
Kevin Diggins : New: Added MKPATH command.  It can create a multi-level disk path all at once.   
                If any part of the path already exists, MKPATH will add the remaining parts.
                Example 1: MKPATH ("C:\Apples\Oranges\Bananas\Grapes") ' Build path in the root
                Example 2: MKPATH ("\Apples\Oranges\Bananas\Grapes")   ' build path in the cwd

Kevin Diggins : New: The LOF function was rewritten to support large files when used in your
                32-bit and 64-bit executables.  LOF() now returns a 64-bit unsigned integer
                with a range of 0 to 18,446,744,073,709,551,615 bytes (2^63 - 1) which should
                be enough to handle most file size requirements.

Kevin Diggins : New: A new SEEK function was added to support large files.  Previous versions
                of BCX used the "C" library function fseek.  The new SEEK function uses the
                same data types and syntax as before, so no changes to your code are needed.
                (Note:  The RECCOUNT command still uses fseek and has not been upgraded.)

Kevin Diggins : New: "RECORD" command now emits code that supports large files: uses new SEEK()               
Kevin Diggins : New: ISOBJECT (oVar) COM function and keyword.  Like BCX_GET_COM_STATUS, except
                where BCX_GET_COM_STATUS takes a POINTER to an object, ISOBJECT takes an object
                as its argument. ISOBJECT is a commonly used PowerBasic keyword.
                ISOBJECT returns TRUE OR FALSE, depending on whether a valid object exists.
                GLOBAL WordApp AS Object
                SET WordApp = CreateObject("Word.Application")
                PRINT ISOBJECT (WordApp)   ' PRINTS "1" (if you have MS Word installed)
                SET WordApp = NOTHING
                SET WordApp = CreateObject("Werd.Application")
                PRINT ISOBJECT (WordApp)    'PRINTS "0" because "Word." is misspelled.
                SET WordApp = NOTHING

Kevin Diggins : New: COM and UNCOM keywords.  Example:
                DIM oVoice AS OBJECT
                oVoice = COM ("SAPI.SpVoice")
                IF ISOBJECT(oVoice) THEN oVoice.Speak "Hello from BCX"
                UNCOM (oVoice)               
               ' The 4 lines above, using the new COM and UNCOM functions, produce
               ' the same results as the 4 lines of code shown below.  The difference
               ' being that the new COM and UNCOM seem more intuitive, are quicker to
               ' type, and easier to remember.  The code (below) is still 100% valid.
                DIM oVoice AS OBJECT
                SET oVoice = CreateObject ("SAPI.SpVoice")
                IF BCX_GET_COM_STATUS (&oVoice) THEN oVoice.Speak "Hello from BCX"
                SET oVoice = NOTHING

Kevin Diggins : New: READ$() keyword for reading individual strings in DATA statements
                READ$() is 1-based .. meaning READ$(2) will return "oranges" from a
                DATA statement like: DATA  "apples", "oranges", "pears"
Kevin Diggins : New: RND2(lower,upper) - Returns a signed integer ranging from lower to upper
                Example: PRINT RND2 (-10, 10)
Kevin Diggins : New: ? operator, when used in a GUI app, is converted to a MSGBOX statement.
                Everything to the right of ? MUST evaluate to a single string expression.
                ?, with nothing else, is allowed and emits a MSGBOX with only an OKAY button.
                Example: ? "Today is " + DATE$ + " and the time is " + TIME$
Kevin Diggins : Ongoing improvements to the c\c++ output file formatting