I had a hunch that's what you were after. You're making the right call, but there is no guarantee that the character will be available in the input stream when you try to read it. If there is no input to be read, so instead you need a polling loop. Something like this:

S DONE=0
F  D  Q:DONE>0
.S X=$$READ^XGF(1,1)
.;etc.

The first parameter is the number of characters you want to read, and the second parameter is a timeout (you can't do just one read).

In writing loops like this, of course, you have to be careful to avoid "tight" loops that keep doing the same thing over and over again without any pause, and you need to be prepared for the possibility that there will never be an "^" to read (e.g., just stop after 30 seconds).

Programming I/O (including terminal I/O) is tricky.

===
Gregory Woodhouse
[EMAIL PROTECTED]

"It is a capital mistake to theorize before one has data."
--Sir Arthur Conan Doyle



On Jun 25, 2005, at 4:40 PM, Kevin Toppenberg wrote:

This library does not work for me.  I have tried the
examples provided in the kernal api, and they don't
work as advertised.  Specifically, the variable XGRT
doesn't get set to the special keys.  Here is a screen
log:

GTM>d INITKB^XGF("*")

GTM>set y=$$READ^XGF(1)
                        <---- Up arrow entered here
GTM>w XGRT
                <--- XGRT should = "UP" (it doesn't)
GTM>w XGRT=""
1
GTM>w y

GTM>set XGRT="hello"

GTM>w XGRT
hello
GTM>s y=$$READ^XGF(1)
              <---- up arrow entered here
GTM>w XGRT
           <--- XGRT is cleared, but not equal to "UP"
GTM>


Kevin


--- Gregory Woodhouse
<[EMAIL PROTECTED]> wrote:


Did you call INITKB^XGF?


===
Gregory Woodhouse
[EMAIL PROTECTED]

"The most profound technologies are those that
disappear."
--Mark Weiser



On Jun 25, 2005, at 1:55 PM, Kevin Toppenberg wrote:


As part of researching how to read in arrow keys,

I

have played a bit with the ^XGF kernal library.  I
can't seem to get it to work correctly.  Does it

work

for others?  Am I using an incorrect terminal

type?


Kevin


--- Kevin Toppenberg <[EMAIL PROTECTED]> wrote:



Can someone explain what is going on this code?

GTM>for i=1:1:5 read *k w "=",$ascii(k),!
a=57
b=57
c=57
d=49
e=49

GTM>for i=1:1:5 read k#1 w "=",$ascii(k),!
a=97
b=98
c=99
d=100
e=101

Why doesn't *k seem to read in the code properly?

Also, how would you read in the key [ESC]?  When

I

enter it at a read prompt, it cancels the read,
rather
than returning a value of 27.  I want to read in

an

escape sequence from a user (i.e. Esc[A for 'up')

Thanks
Kevin





____________________________________________________


Yahoo! Sports
Rekindle the Rivalries. Sign up for Fantasy

Football


http://football.fantasysports.yahoo.com









-------------------------------------------------------



SF.Net email is sponsored by: Discover Easy Linux
Migration Strategies
from IBM. Find simple to follow Roadmaps,
straightforward articles,
informative Webcasts and more! Get everything you
need to get up to
speed, fast.







http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click



_______________________________________________
Hardhats-members mailing list
[email protected]







https://lists.sourceforge.net/lists/listinfo/hardhats-members








__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam

protection around

http://mail.yahoo.com






-------------------------------------------------------

SF.Net email is sponsored by: Discover Easy Linux

Migration Strategies

from IBM. Find simple to follow Roadmaps,

straightforward articles,

informative Webcasts and more! Get everything you

need to get up to

speed, fast.



http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click

_______________________________________________
Hardhats-members mailing list
[email protected]




https://lists.sourceforge.net/lists/listinfo/hardhats-members








-------------------------------------------------------

SF.Net email is sponsored by: Discover Easy Linux
Migration Strategies
from IBM. Find simple to follow Roadmaps,
straightforward articles,
informative Webcasts and more! Get everything you
need to get up to
speed, fast.


http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click

_______________________________________________
Hardhats-members mailing list
[email protected]


https://lists.sourceforge.net/lists/listinfo/hardhats-members







____________________________________________________
Yahoo! Sports
Rekindle the Rivalries. Sign up for Fantasy Football
http://football.fantasysports.yahoo.com


-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Hardhats-members mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hardhats-members




-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
Hardhats-members mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hardhats-members

Reply via email to