[Date Prev][Date Next][Subject Prev][Subject Next][Date Index][Subject Index]

RE: Any way to tell if a save/get is a string vs number?



Yes, decimal.
I think there's a length differences between something stored as a number and as a string. Does Xy3
have a length function?
As to version check, you could easily construct one. E.g., check for whether [BX ]wait[Q2 ] is
acceptable.
In Xy4 and maybe Xy3, there is a distinction between <ex> and <ex1>. The former will
generate a return from a subroutine but not exit the program. <ex1> will exit the whole
program it's in.
Regards,
Harry


-----Original Message-----
From: xywrite-bounce@xxxxxxxxxxxxx [mailto:xywrite-bounce@xxxxxxxxxxxxx] On Behalf Of
wbass@xxxxxxxxxxxx
Sent: Monday, November 4, 2024 10:01 PM
To: xywrite
Subject: Re: Any way to tell if a save/get is a string vs number?

Thanks, Harry.

>>Harry Binswanger said: ... another way is <VA{ASCII21}nn> <<

Harry, is that 21 decimal (which would be the "section sign" character)?  21 hex would be
the exclamation point character, which is what you indicated in you previous post, but the return
values were different for that VA function.

So what I am really still after is an Xy3 way to do it. The only way I know how to do it under Xy3
is to give the S/G id as the first argument to an XS command, which rejects a NUMBER type argument
as an error (but not an error that stops execution). There is then a (weird) way to tell that the XS
command was not happy -- you can read all about that on page 137 of Herbert Tyson's "XyWrite
Revealed" tome. (What Xy3 does when this error occurs is to inject a {ASCII-19} character at
the current cursor location!!!. And that is something that one can check and detect with XPL code.

If some Xy4 user is willing to see if XY4 does the same thing that Xy3 does for this error, that
would also be useful information to me.

Which raises the question: is there an approved way for an XPL program to tell whether it is running
on Xy3 vs Xy4? It seems like a serious flaw not to have such a version check designed in.

Wally Bass



----- Original Message -----
From: "Harry Binswanger" <hb@xxxxxxxxxxxx>
To: "xywrite" <xywrite@xxxxxxxxxxxxx>
Sent: Monday, November 4, 2024 2:52:06 PM
Subject: RE: Any way to tell if a save/get is a string vs number?

Wally,
Besides <VA!nn> another way is <VA{ASCII21}nn>. Replace "{ASCII21}" with the
section symbol that ASCII21 denotes. I can't show it here, probably because Outlook is Unicode.
Anyway, this method returns 1 for a number and 0 for a string. 
Regards,
Harry


-----Original Message-----
From: xywrite-bounce@xxxxxxxxxxxxx [mailto:xywrite-bounce@xxxxxxxxxxxxx] On Behalf Of
wbass@xxxxxxxxxxxx
Sent: Monday, November 4, 2024 4:32 PM
To: xywrite
Subject: Any way to tell if a save/get is a string vs number?

Sorry for the last msg. finger check, msg got away when half done

When a string representing a number is <SV..>ed or <SX..>ed, it is stored in a string of
bytes in either case, but the representation is different. So a S/G has a 'flag' that tells it which
representation is in use. Which means that there are two "data types" for a S/G, which
indicates the data type of the current representation being STRING or NUMBER.

What I'm after is some way were the FLAG setting (STRING or NUMBER) can be tested with an
<IF..> statement. No human intervention allowed.

I know of one XY3 way, but it's pretty kludgy and I don't know if it will work on XY4. If there is
way to do it on XY4 with some newly introduced function, I'd like to know about that, but an Xy3 way
to do it is what I'm really after.

Wally Bass


-- 
This email has been checked for viruses by Avast antivirus software.
www.avast.com