Q36395: How to Use REM or ‘ Comments in DATA Statements without Error
Article: Q36395 Product(s): See article Version(s): 1.00 1.02 2.00 2.01 3.00 4.00 4.00b 4.50 Operating System(s): MS-DOS Keyword(s): ENDUSER | B_BasicCom B_MQuickB B_GWBasicI B_BasicInt | mspl13_basic Last Modified: 13-DEC-1989 If you want to append a comment [using REM or an apostrophe (')] to a DATA statement, you must put a colon (:) in front of the REM or apostrophe on the DATA line. This information applies to QuickBASIC Versions 1.00, 1.02, 2.00, 2.01, 3.00, 4.00, 4.00b, and 4.50 for MS-DOS; to Microsoft BASIC Compiler Versions 6.00 and 6.00b for MS-DOS and MS OS/2; Microsoft BASIC PDS Version 7.00 for MS-DOS and MS OS/2; to GW-BASIC Versions 3.20, 3.22, and 3.23 for MS-DOS; to QuickBASIC Version 1.00 for the Apple Macintosh; to Microsoft BASIC Interpreter Versions 1.00, 1.01, 2.00, 2.10, and 3.00 for the Apple Macintosh; and to Microsoft BASIC Compiler Version 1.00 for the Apple Macintosh. It may also apply to other versions of Microsoft BASIC not listed here. In QuickBASIC for MS-DOS, in Microsoft BASIC Compiler for MS-DOS and MS OS/2, and in GW-BASIC for MS-DOS, a READ statement that is accepted into a non-string variable produces a "Syntax error" if it encounters a comment [a REM or an apostrophe(')] without a preceding colon (:) in a DATA statement line. In QuickBASIC for Macintosh, you get a "Type Mismatch" error if you READ the comment (without a preceding colon) into a non-string variable when you run the program. In all above versions of BASIC (for all operating systems), the READ statement treats the comment as additional string data for input when it reads into a string variable. Correct Example --------------- Separating the DATA statement from the REM (or apostrophe) with a colon (:) lets the program run correctly, as in the following example: DATA abc,,def: rem The second item is null. DATA 1,,2: ' The second item is null. READ a$, b$, c$ ' Note that b$ is assigned to null string ("") PRINT a$, b$, c$ PRINT READ d, e, f ' Note that e is assigned to 0 PRINT d, e, f END Incorrect Example ----------------- In the following program, the first READ statement reads the DATA statement's comment into c$ along with the last element ("def") of the DATA statement, which is not what the programmer may have wanted. The second READ statement produces a "Syntax error" in QuickBASIC, the BASIC compiler, and GW-BASIC for MS-DOS, and produces "Type Mismatch" in QuickBASIC and BASIC for the Apple Macintosh when it attempts to mistakenly read a (string) comment into a numeric variable: DATA abc,,def rem The second item is null. [This becomes data.] DATA 1,,2 ' The second item is null. [This becomes data.] READ a$, b$, c$ ' Note that b$ is assigned to null string ("") PRINT a$, b$, c$ PRINT READ d, e, f ' This READ gives error while reading in f. PRINT d, e, f END
THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.
Copyright Microsoft Corporation 1986-2002.