Kebbon:
Yes, the variable "NULL$" is set to "". In real PICK, when a COMMON
array is created its value is null (an empty string). It is often nice
to know the difference between unassigned, null, and anything (including
zero).
Bill
------------------------------------------------------------------------
Kebbon Irwin said the following on 11/17/2010 1:21 PM:
I noticed the lineMAT DTA.GLOBALS = NULL$Is NULL$ set to "" ?Otherwise would
it not be treated as an unassigned variable with 0 being used, thereby initializing the
dimensioned array to 0 as well?
From: [email protected]
To: [email protected]
Date: Wed, 17 Nov 2010 11:17:28 -0700
Subject: Re: [U2] [UD] Initialize COMMON Variables to Null (Empty String)
Bill I see what you mean I tried this simple test program on UniData 6.1:
PROGRAM DAG.TEST
*
PERFORM "UDT.OPTIONS 15 ON"
PERFORM "UDT.OPTIONS 15 SHOW"
PRINT
COMMON /DAGTEST/ DAGTEST.REC(10), DAGTEST2
DIM Z(10)
*
PRINT "COMMON ARRAY : ":DQUOTE(DAGTEST.REC(1))
PRINT "COMMON SIMPLE: ":DQUOTE(DAGTEST2)
PRINT "DIMENSIONED : ":DQUOTE(Z(1))
PRINT "DYNAMIC : ":DQUOTE(X<1>)
PRINT "SIMPLE : ":DQUOTE(Y)
*
END
All were set to 0 not "".
Wally are we doing something wrong here?
David A. Green
(480) 813-1725
DAG Consulting
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Bill Haskett
Sent: Wednesday, November 17, 2010 10:30 AM
To: U2 Users List
Subject: Re: [U2] [UD] Initialize COMMON Variables to Null (Empty String)
David:
I guess that's my question...it was supposed to be initialized by
"UDT.OPTIONS 15 ON" to null (an empty string), not zero (0).
Thanks,
Bill
------------------------------------------------------------------------
David A. Green said the following on 11/17/2010 5:57 AM:
Looks like your first element was already assigned a value so it is
skipping
the null assignment.
David A. Green
(480) 813-1725
DAG Consulting
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Bill Haskett
Sent: Tuesday, November 16, 2010 6:05 PM
To: U2 Users List
Subject: Re: [U2] [UD] Initialize COMMON Variables to Null (Empty String)
I notice that I've already set this UDT.OPTIONS value to ON.
Today, while investigating why one thing wasn't working I noticed that
several named COMMON variables had a value of zero. I don't set these
values except as a "pass variable" between UO, phantoms, and executes,
so I assumed they were being initialized by UD as zero.
I have some code that does this:
*
COMMON /G_files/ DTA.GLOBALS(20)
...and then in an initialization include, to try to get it initialized
with empty strings, I do:
*
** Initialize DTA globals array once (if not already done)
IF UNASSIGNED(DTA.GLOBALS(1)) OR DTA.GLOBALS(1) = 0 THEN ; ** UD version
*IF NOT(ASSIGNED(DTA.GLOBALS(1))) THEN ; ** D3/UV
version
MAT DTA.GLOBALS = NULL$
END
...yet when I look at the contents of this named COMMON variable all the
/*unused*/ locations are zero (0). Why would that be?
6 Intel (0)-> ***DEBUGGER called at line 742 of program
E:\AboEnterprise\Abo\BP\BP\_TCL.SHELL
!\DTA.GLOBALS
DTA.GLOBALS(1)=6
Enter new value (hit<CR> for no change)=
Continue ? (hit<CR> to continue)
DTA.GLOBALS(2)=2092
Enter new value (hit<CR> for no change)=
Continue ? (hit<CR> to continue)
DTA.GLOBALS(3)=INTEL
Enter new value (hit<CR> for no change)=
Continue ? (hit<CR> to continue)
.
.
.
Enter new value (hit<CR> for no change)=
Continue ? (hit<CR> to continue)
DTA.GLOBALS(18)=0
Enter new value (hit<CR> for no change)=
Continue ? (hit<CR> to continue)
DTA.GLOBALS(19)=0
Enter new value (hit<CR> for no change)=
Continue ? (hit<CR> to continue)
DTA.GLOBALS(20)=0
Enter new value (hit<CR> for no change)=
Thanks,
Bill
------------------------------------------------------------------------
Bill Haskett said the following on 11/16/2010 4:46 PM:
Many thanks, Wally.
Bill
------------------------------------------------------------------------
Wally Terhune said the following on 11/16/2010 2:00 PM:
UDT.OPTIONS 15 U_DYNAMICNUL
Allows you to determine how UniBasic sets an uninitialized variable.
ON UniBasic sets an uninitialized variable to ' '.
OFF UniBasic sets an uninitialized variable to zero (the equivalent
of x=0).
Wally Terhune
U2 Support Architect
Rocket Software
4600 South Ulster Street, Suite 1100 **Denver, CO 80237 **USA
Tel: +1.720.475.8055
Email: [email protected]
Web: www.rocketsoftware.com/u2
-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of Bill Haskett
Sent: Tuesday, November 16, 2010 1:34 PM
To: U2 Mail List
Subject: [U2] [UD] Initialize COMMON Variables to Null (Empty String)
I can't remember if I can set up UniData to initialize common variables
to null (an empty string) rather than to zero (0). Can this be done?
Thanks,
--
Bill Haskett
*/Advantos Systems, Inc./*
_______________________________________________
U2-Users mailing list
[email protected]
http://listserver.u2ug.org/mailman/listinfo/u2-users