Registrations are now open. Join us today!
There is still a lot of work to do on the wiki yet! More information about editing can be found here.
Already have an account?

Microsoft KB Archive/39239

From BetaArchive Wiki
Knowledge Base


Article ID: 39239

Article Last Modified on 11/21/2006

This article was previously published under Q39239

SYMPTOMS

When the program below concatenates more than 19 string variables together in one equation, the BC.EXE compiler can give a misleading error message at compile time.

WORKAROUND

To work around this problem, split up the concatenation line so that the program does two concatenations on separate lines.

STATUS

Microsoft has confirmed this to be a bug in Microsoft QuickBasic versions 4.00, 4.00b, and 4.50 for MS-DOS; in Microsoft Basic Compiler versions 6.00 and 6.00b (buglist6.00, buglist6.00b) for MS-DOS and MS OS/2; and in Microsoft Basic Professional Development System (PDS) versions 7.00 and 7.10 (buglist7.00, buglist7.10) for MS-DOS and MS OS/2. We are researching this problem and will post new information here as it becomes available.

MORE INFORMATION

In QuickBasic versions 4.00 and 4.50 and Basic PDS 7.00, BC.EXE gives the following correct error message, but the message misleadingly points to the bottom of the next structure (IF..ENDIF, WHILE..WEND, or SELECT CASE) in the source file after the concatenation:

Expression Too Complex

BC.EXE should point to the concatenation instead of to the end of the structure.

In QuickBasic version 4.00b and Microsoft Basic Compiler versions 6.00 and 6.00b for MS-DOS and OS/2, BC.EXE displays the following error message in a continuous stream; you must press CTRL+C or CTRL+BREAK to stop the compiler:

run-time error R6000 - stack overflow

The following program will cause problems:

   REM The line continuation character (_) is for display purposes
   REM only and should be removed when typing in the program.
   WHILE a$ = ""
   b$ = INKEY$
   a$ = b$ + c$ + d$ + e$ + f$ + g$ + h$ + i$ + j$ + k$ + l$ _
           + m$ + n$ + o$ + p$ + q$ + r$ + s$ + t$ + u$
   WEND
                

The program can be changed as follows to correct the problem:

   WHILE a$ = ""
   b$ = INKEY$
   a$ = b$ + c$ + d$ + e$ + f$ + g$ + h$ + i$ + j$ + k$ + l$
   a$ = a$ + m$ + n$ + o$ + p$ + q$ + r$ + s$ + t$ + u$
   WEND
                


Additional query words: QuickBas BasicCom buglist4.00 buglist4.00b buglist4.50

Keywords: KB39239