getch()
От: void_123  
Дата: 25.09.04 20:44
Оценка:
Как сделать на шарп для консольного прил.

Console.WriteLine( "Press any key..." );
Console.Read();

Здесь придётся нажимать ентер.
А надо как getch();

Спасибо.
getch()
От: Аноним  
Дата: 26.09.04 19:22
Оценка:
В свое время сам пытался копать эту тему(правда не глубоко ). Мой ответ — НИКАК или я чего-то существенное из виду упускаю. Ввод с консоли представлен в НЕТе в виде класса System.IO.__ConsoleStream. Этот класс даже не упоминается в MSDN и видимо неспроста — MS-у просто стыдно за него. По своему функционалу он крайне ограничен и абсолютно не поддерживает seek-функционал(св-во CanSeek у "нормальных" потоков). А наличие такого фун-ла, в свою очередь, абсолютно необходимо если мы хотим перемещаться внутри потока "по-символьно" или для того, что бы хотя бы иметь возможность определить: длинна потока в настоящий момент 0 или не 0. Так что еще раз могу повторить, что мое мнение — НИКАК, но буду просто счастлив, если меня заставят(аргументипрованно, конечно) это мнение изменить.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re: getch()
От: void_123  
Дата: 26.09.04 19:30
Оценка:
Здравствуйте, Аноним, Вы писали:

<skip>

А> что мое мнение — НИКАК,


Ok. Спасибо. Ну, ... ничего. Если раньше писали printf("\nPress any key to ..."),
то теперь просто писать Сonsole.WriteLine("Due to .NET ... press enter ");

(шутка )
Re[2]: getch()
От: dkms1  
Дата: 27.09.04 08:11
Оценка:
Здравствуйте, void_123, Вы писали:

_>то теперь просто писать Сonsole.WriteLine("Due to .NET ... press enter ");


Во второй версии .NET можно без Enter — см.пример по Console.KeyAvailable.
Re: getch()
От: _nn_  
Дата: 27.09.04 09:54
Оценка:
Здравствуйте, void_123, Вы писали:

_>Как сделать на шарп для консольного прил.


_>
_>Console.WriteLine( "Press any key..." );
_>Console.Read();
_>

_>Здесь придётся нажимать ентер.
_>А надо как getch();

_>Спасибо.


Console.ReadKey не подойдет ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: getch()
От: Chaka Украина  
Дата: 27.09.04 10:33
Оценка:
Здравствуйте, _nn_, Вы писали:


__>Console.ReadKey не подойдет ?


Имхо, в FW1.1 нет метода ReadKey у System.Console
... << RSDN@Home 1.1.4 >>
WBR, Chaka
Re[3]: getch()
От: dkms1  
Дата: 27.09.04 11:30
Оценка:
Здравствуйте, Chaka, Вы писали:

C>Имхо, в FW1.1 нет метода ReadKey у System.Console


В FW2.0 есть, но надо нажимать Enter
Re[4]: getch()
От: _nn_  
Дата: 27.09.04 18:53
Оценка:
Здравствуйте, dkms1, Вы писали:

D>Здравствуйте, Chaka, Вы писали:


C>>Имхо, в FW1.1 нет метода ReadKey у System.Console


D>В FW2.0 есть, но надо нажимать Enter


Чего-то вы путаете.
Для System.Console.ReadKey можно нажать любую клавишу.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Чтоб не флудить - отвечаю в корень
От: void_123  
Дата: 27.09.04 19:10
Оценка:
Можно, конечно, перезжать на фрэймворк в 2.0.
Но может покопать, как мне недавно подсказали в сторону System.IO?
Там есть класс StreamReader.Но, поскольку я третье-сортный трудец компьютерного серпа, то у меня не хватает ума найти способо перенаправить стрим из коноли, для того чтобы затем читать его ридером. ;((
Иначе говоря, как задать консоль в качестве "дефолт стрим",... при создании (нью) экземпляра ридера.

Как это сделать?
Re: Чтоб не флудить - отвечаю в корень
От: Аноним  
Дата: 27.09.04 20:29
Оценка:
Граждане, успокойтесь! Во-первых System.Console.ReadKey в 1.1 окончательно и бесповоротно НЕТ, есть Read и ReadLine. Все. В 2.0 не знаю, не смотрел. Во-вторых как только вы обращаетесь к консоли в игру вступает наш убогонький System.IO.__ConsoleStream(см. выше). Все возможные потоки и ридеры System.IO которые вы собираетесь понавешивать сверху, будут или напрямую или через или даже через-через, но юзать этот класс. И если вы думаете, что они сделают его потоком с произвольным доступом, то надо срочно прекращать так думать. Поскольку(у меня по крайней мере) имея его в основе они перенимают все его же худшие черты. Поэтому(в третий раз уже) — ИМПОССИБЛЕ.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[2]: Чтоб не флудить - отвечаю в корень
От: void_123  
Дата: 28.09.04 02:57
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Граждане, успокойтесь! Во-первых System.Console.ReadKey в 1.1 окончательно и бесповоротно НЕТ, есть Read и ReadLine. Все. В 2.0 не знаю, не смотрел. Во-вторых как только вы обращаетесь к консоли в игру вступает наш убогонький System.IO.__ConsoleStream(см. выше). Все возможные потоки и ридеры System.IO которые вы собираетесь понавешивать сверху, будут или напрямую или через или даже через-через, но юзать этот класс. И если вы думаете, что они сделают его потоком с произвольным доступом, то надо срочно прекращать так думать. Поскольку(у меня по крайней мере) имея его в основе они перенимают все его же худшие черты. Поэтому(в третий раз уже) — ИМПОССИБЛЕ.


А>
данное сообщение получено с www.gotdotnet.ru

А>ссылка на оригинальное сообщение

Thanks a lot man.
Re: getch()
От: Alexey Goncharov Россия  
Дата: 01.10.04 11:53
Оценка: 1 (1)
Здравствуйте, void_123, Вы писали:

_>Как сделать на шарп для консольного прил.


_>Console.WriteLine( "Press any key..." );
_>Console.Read();

_>Здесь придётся нажимать ентер.
_>А надо как getch();

Можно использовать ReadConsoleInput из WinAPI
Я себе подобным образом реализовал kbhit (GetNumberOfConsoleInputEvents + PeekConsoleInput)
Re[2]: getch()
От: void_123  
Дата: 01.10.04 11:59
Оценка:
Здравствуйте, Alexey Goncharov, Вы писали:

AG>Здравствуйте, void_123, Вы писали:


_>>Как сделать на шарп для консольного прил.


AG>
_>>Console.WriteLine( "Press any key..." );
_>>Console.Read();
AG>

_>>Здесь придётся нажимать ентер.
_>>А надо как getch();

AG>Можно использовать ReadConsoleInput из WinAPI

AG>Я себе подобным образом реализовал kbhit (GetNumberOfConsoleInputEvents + PeekConsoleInput)

Это так.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.