:: Visual Foxpro, Foxpro for DOS
принять несколько символов с клавиатурі
vodaic
Автор

Сообщений: 188
Откуда: Киев, Украина
Дата регистрации: 24.02.2009
Совсем "заблудился". Как, работая в интерпретаторе (окно Command), принять с клавиатуры ексколько символов? Без создания формы.

Спасибо!
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
ssa

Сообщений: 13007
Откуда: Москва
Дата регистрации: 23.03.2005
vodaic
Совсем "заблудился". Как, работая в интерпретаторе (окно Command),
Однако... Такой трактовки я еще не видел... Интрепретация - всего лишь один из способов трансляции и к упомянутому окну отношения не имеет. И ВСЯ работа фокса - интерпретация. И весь фокс и есть интерпретатор.
Цитата:
принять с клавиатуры ексколько символов? Без создания формы.
Принять куда?

------------------
Лень - это неосознанная мудрость.




Исправлено 1 раз(а). Последнее : ssa, 31.07.17 11:28
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
vodaic
Автор

Сообщений: 188
Откуда: Киев, Украина
Дата регистрации: 24.02.2009
Разумеется, в некоторую переменную.....
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
_cliptext = InputBox('Вперед')
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
spinz

Сообщений: 5263
Дата регистрации: 21.01.2016
Думал, что принять = накатить
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Ну так "символы с клавиатуры" именно в это самое окно Command и попадают, и там отображаются в буковки/циферки, либо выполняют свои действия

Если нужно получить "код одной клавиши" то можно использовать INKEY(0), если просто строку - то я вообще не вижу проблем написать переменная = "..." и в кавычках эту самую строку и прописать


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
vodaic
Автор

Сообщений: 188
Откуда: Киев, Украина
Дата регистрации: 24.02.2009
Taran
_cliptext = InputBox('Вперед')

Спасибо! Именно это мне и надо.
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
хех, засунуть строку в буфер обмена, это "принять несколько символов с клавиатурі" - да, дела...


------------------
WBR, Igor
Ratings: 0 negative/2 positive
Re: принять несколько символов с клавиатурі
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
vodaic
Taran
_cliptext = InputBox('Вперед')

Спасибо! Именно это мне и надо.

Может я и ошибаюсь, но мне кажется, надо было таки совсем не это.

Поскольку:
vodaic
в некоторую переменную.....
делается совершенно без предложенной выше, немного непонятной кстати зачем, конструкции.
А всего лишь элементарным присвоением в командном окошке значений любой переменной:
chislo = 12313
takoi_text = "вот такие пироги"
и т.п.
Ну, в случае необходимости, можно иногда еще перед таким присвоением расширять область видимости переменной элементарным вводом в командной строке объявления глобальной видимости для данной переменной:
PUBLIC chislo, takoi_text

Но при чем тут занесение в буфер памяти? Да еще и производимое через команду InputBox? :al:

Если это не шутка конечно.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)




Исправлено 1 раз(а). Последнее : Crispy, 02.08.17 08:20
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Переменные создаваемые в командном окне (путём присвоения им значения) по умолчанию и так будет Public. Единственное исключение - это если в командное окно мы зашли при работающей/активной программе приостановленной отладчиком (если программу не приостановить, то и в командном окне ничего "исполняться" не будет - даже если его активировать) - тогда по сути все вводимые команды исполняются в контексте того метода/процедуры в которой и находится текущая "точка останова", ну и соответственно переменные создаются как Private - т.е. вот тут как раз команда Public имеет смысл (например "запомнить" локальную переменную для последующей отладки работы с ней уже вне контекста текущего метода/процедуры). Если это метод, то даже можно использовать псевдопеременные this/thisform...

А уж что нужно было авторы темы - это загадка


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
Crispy

Сообщений: 18571
Дата регистрации: 16.05.2005
Ну я собственно и имел в виду именно такой случай изредка возникающей необходимости использования дополнительной видимости.
А так - да, все похоже осталось загадкой.


------------------
В действительности все иначе, чем на самом деле.
                                      (Антуан де Сент-Экзюпери)
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
Crispy
А так - да, все похоже осталось загадкой.

Ну кому как. Я то угадал. ;)
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
akvvohinc

Сообщений: 4212
Откуда: Москва
Дата регистрации: 11.11.2008
Igor Korolyov
Переменные создаваемые в командном окне (путём присвоения им значения) по умолчанию и так будет Public. Единственное исключение - это если в командное окно мы зашли при работающей/активной программе приостановленной отладчиком
Есть вариант присвоить в командном окне значение переменной, при котором по умолчанию она создастся как PRIVATE.
Для этого в Command пишем 2 строки, не выполняя каждую из них в отдельности:
v1 = 1
DISPLAY MEMORY
Затем выделяем эти строки и нажимаем Enter.
На экране видим, что переменная была создана как PRIVATE.
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
akvvohinc

Сообщений: 4212
Откуда: Москва
Дата регистрации: 11.11.2008
Taran
Ну кому как. Я то угадал.

Думаю, ты угадал только с Inputbox, а буфер обмена ТС заполнять не требовалось.
Достаточно было для приема использовать любую переменную.
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
Taran

Сообщений: 13623
Откуда: Красноярск
Дата регистрации: 16.01.2008
akvvohinc
Достаточно было для приема использовать любую переменную.

Ну это мы еще в 90х с ани кей попарились. Спасибо.
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Когда в командном окне выделяется даже всего одна строка с командой и нажимается enter, либо вызывается пункт контекстного меню Execute Selection, фокс сбрасывает эти самые выделенные символы во временный prg файл (в %temp% папке), компилирует его и запускает на исполнение. Естественно, это будет совсем не выполнение одной команды в командном окне, поэтому и переменная будет не public ну и вообще много всяких других отличий будет видно (те же PROGRAM, ASTACKINFO, что IMHO очевидно).
Кстати, это причина возникновения кучи фоксовых .err а иногда ещё и prg и fxp файлов (если фокс совсем "помрёт" во время выполнения такого "анонимного блока кода" - ну или на время пока активен отладчик - т.к. тот же SET STEP ON совершенно легален в этих ситуациях) во временной папке винды.
Ну и для полноты картины - вызывать "Execute Selection" можно из любого фоксового окна редактора кода - из редактора prg, или редактора кода методов в визуальном дизайнере форм/классов...


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
vodaic
Автор

Сообщений: 188
Откуда: Киев, Украина
Дата регистрации: 24.02.2009
Вот уж не думал, что простой вопрос вызовет такой резонанс.
Думал, что получил достаточно удобный ответ на вопрос и тема "умолкнет"
Поэтому увидел ее продолжение только сейчас.

Потребность простая. Некоторые действия должны выполниться 30 раз.
При этом за каждым проходом выполнения надо задать свое значение
некоторой переменной. Пишется "на коленке" программка в 50-60 строк
и в окне МАЗ запускается программка через "Programm"---"Do".
А для каждого прохода с клавиатуры принимается несколько символов,
оригинальных для каждого прохода.

И менно Inputbox() и оказался тем инструментарием, которой мне и был нужен.

Абсолютно всем, принявшим участие в ликвидации моей "дремучести"
БОЛЬШОЕ СПАСИБ!
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
vodaic
Автор

Сообщений: 188
Откуда: Киев, Украина
Дата регистрации: 24.02.2009
В догонку: МАЗ - это VFP
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
Igor Korolyov

Сообщений: 34580
Дата регистрации: 28.05.2002
Странный подход. Проще сделать курсор, забить в него нужное количество записей и потом сделать цикл по нему. 30 раз подряд вылазящий inputbox это, мягко говоря, неудобно.


------------------
WBR, Igor
Ratings: 0 negative/0 positive
Re: принять несколько символов с клавиатурі
vodaic
Автор

Сообщений: 188
Откуда: Киев, Украина
Дата регистрации: 24.02.2009
Igor Korolyov
Странный подход. Проще сделать курсор, забить в него нужное количество записей и потом сделать цикл по нему. 30 раз подряд вылазящий inputbox это, мягко говоря, неудобно.

С этим согласен полностью. Только лень мне была строить циклы.
Хотел попроще. За одно и функцию вспомнил...
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 24 (Гостей: 24)

© 2000-2024 Fox Club 
Яндекс.Метрика