Отправляет email-рассылки с помощью сервиса Sendsay

За 2017-08-31

[prg] Re: Генерация псевдослучайных чисел в быстрой последовательности

Приветствую всех!

Во-первых, в вашем коде есть ошибки: GetRandomName или GetName?
Во-вторых, чтобы последовательности букв в вашем случае не повторялись,
экземпляр Random должен создаваться один раз (а у вас это происходит 11
раз), поэтому не используйте локальный вариант экземпляра Random. Сделайте,
например, экземпляр Random в виде static-поля класса и проинициализируйте
его один раз.
В-третьих, в документации к Random есть ответы на все ваши вопросы.
Успехов. Анатолий.
Исходное сообщение > Чем можно заменить генератор псевдослучайных чисел
> из класса Random в C#, чтобы в быстрой последовательности хотя бы
> генерировались
> разные последовательности?
>
> //генерация случайного набора из пяти букв
> string GetRandomName()
> {
> ... Random rnd = new Random();

   "i_chay" 2017-08-31 22:47:44 (#3516076)

[prg] Генерация псевдослучайных чисел в быстрой последовательности

Здравствуйте господа. Чем можно заменить генератор псевдослучайных чисел
из класса Random в C#, чтобы в быстрой последовательности хотя бы
генерировались
разные последовательности?

//генерация случайного набора из пяти букв
string GetRandomName()
{
Random rnd = new Random();
string pw = string.Empty;
for (int i = 0; i < 6; i++)
{
pw += (char)rnd.Next('a', 'z');
}
return pw;
}

for (int i = 0; i < 11; i++)
{
listBox1.Items.Add(GetName());
//если не использовать задержку -- будут повторяться последовательности
System.Threading.Thread.Sleep(19);
}

тем чаще будут получаться одинаковыми последовательности, чем меньше
время задержки. На самом деле 19 -- это уже чтобы наверняка. Можно
поставить и меньше,
но лучше не рисковать. Все это неплохо работает, если нужно
сгенерировать небольшое количество информации, но когда речь идет о
больших объемах сгенерированных
слов, то задержка уже начинает очень мешать.

Чем и как заменить этот Random? Если можно, пример.

   2017-08-31 21:56:16 (#3516072)

[prg] Re[7]: Вопросы по разработке плагинов и модулей приложений для nvda

Здравствуйте, Саша Козловский <k.sasha19***@y*****.ru>.

* Исходное сообщение * РР> > Я уже, честно говоря, запутался, о чём именно вы спрашиваете
РР> Я спрашиваю о том,где хранятся,к примеру,модули,
<...>
РР> проявляются 3 странных бага.

Уважаемые господа, правило разделять обсуждения по разным
письмам/темам ведь не зря придумано. Напихав всё в один текст вы
рискуете породить малоосмысленную загроможденную цитатами кучу-малу. Ее
и читать неудобно, и отвечать неудобно.

   2017-08-31 17:43:15 (#3516036)

[prg] Re[6]: Вопросы по разработке плагинов и модулей приложений для nvda

Здравствуйте Никита. Вы писали
> Я уже, честно говоря, запутался, о чём именно вы спрашиваете
Я спрашиваю о том,где хранятся,к примеру,модули,т.е к примеру куда мне
лучше загрузить,к примеру,pandass и numpy,но я уже вроде разобрался с
этим. Ещё Вы пишете
> Проверьте по символам, что именно вы вводите. Всё должно работать.
Я всё вводил правильно. Извините меня пожалуйста,это был мой косяк. Дело
в том,что я наивно рассчитывал,что nvda обязательно озвучит мне
текст,если он есть,а оказывается это не всегда работает. Я посмотрел в
историю и у меня действительно показывался текст. Кстати по-моему в
пятом примере разбирался пример,в котором подсчитывалось количество
символов в полях редактирования. Из этого примера,хоть это ранее и
объяснялось,я не понял,зачем нам создавать пользовательский
класс,наследующийся от класса,представляющего объект поле ввода? Разве
этот модуль,который я написал,не решает ту же задачу,что и модуль в
руководстве для разработчиков? Даже если бы была задача подсчитать сумму
символов во всех полях ввода данного приложения,я бы,наверное,получил
список объектов у окна приложения и потом бы суммировал количество
символов у списка children каждого дочернего объекта окна,делая при этом
соответствующие проверки,хотя,наверное,есть более правильный способ
сделать это,ведь приложение может быть многооконное. Главное как
получить список всех объектов в данном приложении. Кстати не могли бы Вы
пожалуйста привести пример ситуации,в которых без создания
пользовательского класса,наследующегося от nvda объекта нельзя улучшить
доступность приложения?
Ещё и в модуле,который в руководстве,и в моём модуле почему-то
проявляются 3 странных бага.
1. В строке,состоящей из пробелов,табов,возврата каретки и других особых
символов,не считая букв,цифр,знаков препинания,математических знаков и
других служебных знаков,nvda ничего не говорит,что не
удивительно,поскольку значение этого поля ввода почему-то равно None.
2. Почему-то если в поле ввода кроме не особых символов,присутствует
возврат каретки и,возможно,символ перевода строки,хотя в последнем я не
уверен,количество символов считается не правильно поскольку,как я
понял,возврат каретки и,возможно,перевод строки,считаются как 2 символа.
Неужели python считает возврат каретки как 2 отдельных символа - \ и
r,ведь именно так он записывается в неформатированных строках т.е \r.
3. Почему-то этот модуль не считает количество символов больше чем
4096,т.е я точно знаю,что у меня гораздо больше чем 4096 символов,но
nvda говорит,что количество символов у меня 4096. Подскажите
пожалуйста,как эти баги исправить. Ниже будет код модуля,который я
написал,чтобы доказать,что для решения задачи,поставленной в
руководстве,совсем не обязательно создавать пользовательский класс.
# -*- coding: utf-8
import appModuleHandler,ui,api,controlTypes
class AppModule(appModuleHandler.AppModule):
def script_speakHowMutchCharactersInEditableFeald(self,gesture):
obj=api.getFocusObject()
ui.message(str(len(obj.value))) if obj.windowClassName == "Edit" and
obj.role == controlTypes.ROLE_EDITABLETEXT else None
__gestures={"kb:NVDA+l":"speakHowMutchCharactersInEditableFeald"}

   2017-08-31 00:15:33 (#3515936)