[Info-vax] : BASIC - PRINT USING a quad value

Art awiens at postmedia.com
Fri Oct 14 10:33:41 EDT 2011


I am not a programmer.[/expectations]

A couple of years ago I wrote a simple Basic program to show disk freespace.  I did it mostly to learn some basic Basic programming and how to work with descriptors but also it was handy little display utility.

I added a couple more 200GB LUNS to our test cluster and my program "broke" as it exceeded a LONG variable holding total blocks.  The simple fix was to change a couple of variables to QUAD datatypes, and it now "works" again, but I can't get it to PRINT USING the new QUAD values.

As an example, I am trying to use this :

DECLARE STRING CONSTANT TOT_COMMAS = "#,###,###,###,###,###,###"

and this :

PRINT "TOT_MAXBLOCK  is : ";TOT_MAXBLOCK
PRINT USING TOT_COMMAS, TOT_MAXBLOCK

But it gives me this :

TOT_MAXBLOCK  is :  3070230528 
                        0

Using this style of PRINT USING with LONG's works fine:

DECLARE STRING CONSTANT COMMAS = "#,###,###,###"

PRINT "DEV_MAXBLOCK  is : ";DEV_MAXBLOCK
PRINT USING COMMAS, DEV_MAXBLOCK

DEV_MAXBLOCK  is :  419430400 
  419,430,400

The Basic manual describes a LONG as 10 and a QUAD as 19 decimal digit precision.  Why does it appear to be a 25 character field in the QUAD example?  What am I not understanding?

Cheers,
Art
-- 
"Cheer up ... things could get worse"
So he did ... and they did!



More information about the Info-vax mailing list