[Gambas-user] 2 console questions.
Γιώργος Κ
giorgosk67 at ...626...
Sat Mar 15 02:33:34 CET 2014
2014-03-15 2:38 GMT+02:00 Tobias Boege <taboege at ...626...>:
> On Sat, 15 Mar 2014, ??????? ? wrote:
>> Hi! :-)
>> Thank you very much for this wonderful project!
>>
>> I just installed it and giving it a try.
>> I have 2 questions, console programming related.
>>
>> 1) Is there any command Input-like, that allows for a specific number
>> of characters input (without pressing Enter)?
>> Eg. lets say, I'm presenting the user a Y or N question. What I
>> expect, is a single character input (with no need, for pressing
>> Enter).
>>
>> 2) Is there any way for coloring the text (eg. presenting a question
>> with red or green letters), other than messing with ncurses?
>> Something closer to BASIC tradition, maybe?
>> Ncurses is more or less complicated! :-)
>>
>
> Ouch! I was already typing the answer: ncurses - then I read your last
> paragraph :-) But maybe we can try without:
>
> 1) There is nothing to do that. Terminal is line-buffered by default, so you
> will always have to wait for Return and then read the entire line using
> the Line Input instruction. In the best case, the line will only consist
> of "y" or "n" or "Y" or "N".
>
> You can change the behaviour of the terminal but that would either
> require messing around with struct termios using libc or using ncurses
> which wraps that for you.
>
> 2) This is easy once you get used to it. You just have to know about escape
> sequences. If you have a proper man-pages install, "$ man console_codes"
> is your best friend.
>
> To switch to, say, green foreground, you write in Gambas:
>
> Print "\e[32m";
> Print "This is green foreground"
>
> of course, you need to switch that off at some point:
>
> Print "\e[0m";
> Print "Default rendition again"
>
> Again, ncurses would wrap that for you.
>
> The Gambas Console (which is built into the IDE to watch a program's stdout
> and stderr) is not a full-featured terminal emulator. It won't interpret
> those escape sequences, so you need to enable the "Use a terminal emulator"
> option in the project options.
>
> Note also that there is already a gb.ncurses component that helps you deal
> with ncurses in the Gambas way (more or less). As you said you are new to
> Gambas, I thought I should let you know... (attached is a project that shows
> how you could have done the stuff with gb.ncurses).
>
> Here[0] is also a tutorial introduction to gb.ncurses which explains the
> setup to run those terminal-fancy programs. Have fun with Gambas!
>
> Regards,
> Tobi
>
> [0] http://gambaswiki.org/wiki/tutorial/ncursestut
>
> --
> "There's an old saying: Don't change anything... ever!" -- Mr. Monk
>
> ------------------------------------------------------------------------------
>
MANY THANKS Tobi for your help!!! :-)
2) I already read the wiki, but I'm not sure that I understood much things! :-)
Now that you pointed me, at the right direction, everything becomes clearer!
I have to mess with ESC sequences for > 20y! :-)
>From the time, I was entering them at EDLIN, for beautifying my
ANSI.SYS enabled, command prompt.
At recent times, since Bash is configured differently, I never touched
them again.
Yes, I'm familiar with them and now it's the right time for refreshing
my memory I suppose! :-)
1) Creating a custom ncurses wrapper?
Very interesting idea!!!
I'll look at it.
I'll look the example at the morning.
THANKS AGAIN for your really fast and really enlighting help!!!
Giorgos. :-)
More information about the User
mailing list