Wol,
It is not how the compiler deals with the information but how the runtime
engine deals with the data.
I have demonstrated the runtime engine types the data based on how it is
entered in the source code.
A = 1 is typed as a numeric by the runtime engine and A = "1" is typed as a
string. In an earlier
post I provided the following proof.
TST
0001 DEBUG
0002 A = 1
0003 A = "1"
0004 STOP
>RUN XP TST
TST: 2: A = 1
:: S
TST: 3: A = "1"
:: A/
INTEGER: 1
:: S
TST: 4: STOP
:: A/
STRING: T r L=1 `1'
::
The program simply sets the variable A to 1 or "1" and when run it goes in
to debug mode.
I then stepped through each line and displayed the contents of the variable
A by typing A/ as you can
see the runtime engine reports each line as INTEGER or STRING depending on
how the data was entered in the
source code.
Regards,
Stewart
-----Original Message-----
From: Anthony Youngman [mailto:[EMAIL PROTECTED]
Sent: Wednesday, 31 March 2004 19:15
To: U2 Users Discussion List
Subject: RE: Data typing in MV Basic
Why?
Let's work on the basic principal of "coercion occurs when necessary,
and not before".
The compiler detects "1" as a string literal. It stores it as a literal.
The compiler detects 1 as a numeric literal. It stores it as a literal.
(The compiler doesn't give a damn about strings or numerics - a literal
is a literal is a literal)
Therefore 'A = 1' and 'A = "1"' both result in IDENTICAL p-code.
Therefore, unless you know how the compiler works, your conclusion is
demonstrably flawed.
Cheers,
Wol
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Mitchell, Stewart
Sent: 31 March 2004 08:31
To: 'U2 Users Discussion List'
Subject: RE: Data typing in MV Basic
A = 1 is held as an integer
A = "1" is held as a string
A = "1" + 0 is held as an integer
Cheers,
Stewart
-----Original Message-----
From: Anthony Youngman [mailto:[EMAIL PROTECTED]
Sent: Wednesday, 31 March 2004 17:00
To: U2 Users Discussion List
Subject: RE: Data typing in MV Basic
You've missed the point! :-)
These two statements apparently have exactly the same effect - the
question is do they?
A = 1
A = "1"
(In the stuff I'm writing, they'd be the same - everything is a string
until it is forced into numeric.)
Cheers,
Wol
-----Original Message-----
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]
On Behalf Of Jim Garratt
Sent: 31 March 2004 07:39
To: U2 Users Discussion List
Subject: Re: Data typing in MV Basic
Would this not be set by your initialisation of the variable A.
eg A = '' ;*Alpha/Numeric or String
A = 0 ; Numeric
----- Original Message -----
From: "Trevor Ockenden" <[EMAIL PROTECTED]>
To: "U2 Users Discussion List" <[EMAIL PROTECTED]>
Sent: Wednesday, March 31, 2004 2:25 PM
Subject: Re: Data typing in MV Basic
> Will, I stand corrected on that one. So far in 20 odd years of
programming
> in MV I haven't needed to worry about it.
>
> Now Will raises a terrific question. If A = "1" assigns 1 as numeric.
How
> would you determine if A contained a numeric or a string in this case?
>
> My short answer is - why would I need to know? BUT I'm sure somebody
has a
> good answer to that one.
>
> Cheers
>
> Trevor Ockenden
> Open Systems Professionals
>
> ----- Original Message -----
> From: <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, March 31, 2004 4:10 PM
> Subject: Re: Data typing in MV Basic
>
>
> > In a message dated 3/30/2004 8:19:18 PM Pacific Standard Time,
> > [EMAIL PROTECTED] writes:
> >
> >
> > > A = 1 assigns a numeric integer. The expression need not contain
> operators
> > > (+,-,etc) to be numeric.
> > > A = "1" assigns a string however, as you have explicitly declared
it
to
> be
> > > string.
> > > A = "1" + 2 assigns a numeric integer value (3) as the result is
> numeric.
> > > A = "one" + 2 assigns a zero - according to the error message.
> >
> > yes
> > no
> > yes
> > yes
> >
> > they all assign numerics imho
> > "1" is cast as a numeric because the system is smart enough to
realize
its
> a
> > numeric string and has no purpose casting it as a string
> > Any idea how to test which it is?
> > Will
> > --
> > u2-users mailing list
> > [EMAIL PROTECTED]
> > http://www.oliver.com/mailman/listinfo/u2-users
> >
>
>
> ---
> Outgoing mail is certified Virus Free by AVG 6.0.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.642 / Virus Database: 410 - Release Date: 25/03/2004
>
> --
> u2-users mailing list
> [EMAIL PROTECTED]
> http://www.oliver.com/mailman/listinfo/u2-users
--
u2-users mailing list
[EMAIL PROTECTED]
http://www.oliver.com/mailman/listinfo/u2-users
************************************************************************
****
*******
This transmission is intended for the named recipient only. It may
contain
private and confidential information. If this has come to you in error
you
must not act on anything disclosed in it, nor must you copy it, modify
it,
disseminate it in any way, or show it to anyone. Please e-mail the
sender to
inform us of the transmission error or telephone ECA International
immediately and delete the e-mail from your information system.
Telephone numbers for ECA International offices are: Sydney +61 (0)2
9911
7799, Hong Kong + 852 2121 2388, London +44 (0)20 7351 5000 and New York
+1
212 582 2333.
************************************************************************
****
*******
--
u2-users mailing list
[EMAIL PROTECTED]
http://www.oliver.com/mailman/listinfo/u2-users
--
u2-users mailing list
[EMAIL PROTECTED]
http://www.oliver.com/mailman/listinfo/u2-users
--
u2-users mailing list
[EMAIL PROTECTED]
http://www.oliver.com/mailman/listinfo/u2-users
--
u2-users mailing list
[EMAIL PROTECTED]
http://www.oliver.com/mailman/listinfo/u2-users