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