В общем... снова вспомнил про ММВ. Суть в чем. Разрабатываем теперь систему электронного обучения на базе Moodle. И возникает необходимсоть в генерации логинов-паролей для студентов. 10-20 паролей я еще придумаю, в список занесу, распечатаю и студентам раздам... Но чтобы 100, 200, 300... Это выше человеческих сил. А у Мудли еще же и требования к паролям зверские - обязательна заглавная буква, обязательна строчная, обязателен символ, обязательна цифра, де еще и не менее 8 символов.
И вот сижу ломаю голову, как сделать так, чтобы ввел фамилию-имя студента - а где-нибудь в окошке, пусть в тхт формате, строка - Фамилия, имя, логин, пароль. Ввел вторую - ниже вторая строка... и так пока все фамилии не введешь. А потом распечатывай, разрезай и раздавай. Можно как то малой кровью обойтись? А то я блин уже Бог знает сколько времени к ММВ не касался, изрядно подзабыл, как что делать... Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету... Марк Твен
Осталось сделать интерфейс. Все алгоритмы давным-давно есть и придуманы... Странно, что Вы ленитесь пользоваться поиском, бывший завсегдатай ведь... Вечная память Андрею Сергееву!
Странно, что Вы ленитесь пользоваться поиском, бывший завсегдатай ведь...
Да вот в том то и дело, что я помню, что здесь что то подобное было, но поиск по форуму ничего не дал. Правда, искал ПО ФОРУМУ... Вылетело из башки, что тут не только форум есть... Но вот проблема то в том, что в пароле ОБЯЗАТЕЛЬНО должны быть вышеуказанные символы, а в примере они могут быть, а могут и не быть (во всяком случае, когда я в строку ввел *-+/ они появлялись через раз.) Впрочем, тут уж я покумекаю, как говорится "нужен толчок..."
Вот в том то и дело.. чтоб бывший завсегдатай... Я ж теперь папой стал, дома вообще не до компьютера, и на работе есть чем заниматься - та же Мудл такая блин система... еще ж преподавателей нужно обучить ею пользоваться.
Спасибо! Теперь есть площадка для старта! Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету... Марк Твен
Но вот проблема то в том, что в пароле ОБЯЗАТЕЛЬНО должны быть вышеуказанные символы, а в примере они могут быть, а могут и не быть
Предлагаю создать отдельный массив с этими обязательными символами, пройти его циклом и принудительно в рандомные позиции итогового пароля вставлять их. Правда, можно случайно затереть другой обязательный символ... В общем, надо подумать, у меня лично голова уже не варит в столь поздний час Вечная память Андрею Сергееву!
Предлагаю создать отдельный массив с этими обязательными символами, пройти его циклом и принудительно в рандомные позиции итогового пароля вставлять их.
Я пошел, как мне показалось, более простым (для меня) путем. А именно - 4 массива, и 4 цикла, которые случайно генерируют набор симфолов из каждого. Потом они складываются. И поставил ,чтобы жестко было количество символов - 8. Хоть бы эти запомнили... Но тогда получается, например, во всех паролях, например, первые два символа - заглавные, далее - два символа строчные и т.д. Сейчас думаю над случайным перетряхиванием порядка символов в готовом пароле...
s$='ABCDEFGHIJKLMNOPQRSTUVWXYZ' s1$='abcdefghijklmnopqrstuvwxyz' s2$='1234567890' s3$='+-/*_@#%!?' **Очищаем переменную и поле с паролем pass$='' pass1$='' pass2$='' pass3$='' LoadText("p","pass$") **Пускаем цикл с 1 по число, что ввели в **"Длине пароля" For i=1 To 2 **Случайное число из длины **строки "Символов, исп..." b=RND(LEN(s$)-1)+1 **Копируем символ из "Символов, исп..." **с порядковым номером, сгенерированным выше pass$=pass$+StrCopy(s$,b,1) Next i **Пускаем цикл 2 с 1 по число, что ввели в **"Длине пароля" For i1=1 To 2 **Случайное число из длины **строки "Символов, исп..." b1=RND(LEN(s1$)-1)+1 **Копируем символ из "Символов, исп..." **с порядковым номером, сгенерированным выше pass1$=pass1$+StrCopy(s1$,b1,1) Next i1 **Пускаем цикл 3 с 1 по число, что ввели в **"Длине пароля" For i2=1 To 2 **Случайное число из длины **строки "Символов, исп..." b2=RND(LEN(s2$)-1)+1 **Копируем символ из "Символов, исп..." **с порядковым номером, сгенерированным выше pass2$=pass2$+StrCopy(s2$,b2,1) Next i2 **Пускаем цикл 4 с 1 по число, что ввели в **"Длине пароля" For i3=1 To 2 **Случайное число из длины **строки "Символов, исп..." b3=RND(LEN(s3$)-1)+1 **Копируем символ из "Символов, исп..." **с порядковым номером, сгенерированным выше pass3$=pass3$+StrCopy(s3$,b3,1) Next i3 pass_$=pass$+pass1$+pass2$+pass3$ **Выводим пароль **Выводим пароль LoadText("p","pass_$")
Добавлено (02 Декабрь 2011, 06:25) --------------------------------------------- Кстати, прогнал сейчас на Мудл - все прекрасно работает.
Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету... Марк Твен
Насчет первых символов заглавных и т.д. Можно каждомусимволу присвоить порядковый номер, и после рандомно подставлять по номеру. Не хочешь читать хелп?
mishem, эм... да, я про рандом то о же думал, но чет туплю... как им порядковый номер дать...
Добавлено (02 Декабрь 2011, 06:52) --------------------------------------------- блин, думаю, чего мне уведомления не прихолдят... Я ж тупо галку не поставил...
Добавлено (02 Декабрь 2011, 07:24) --------------------------------------------- Так... ну, по быстрому получилось заставить генерировать логи-пароль и заносить в общий список, который потом выводится. Осталось покумекать над перемешиванием символов
Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету... Марк Твен
Сообщение отредактировал Игорь - Пятница, 02 Декабря 2011, 06:52
Я не знаю ММВ, но парсер же должен быть. Пишешь список всех нужных символов к примеру через запятую. Парсишь строку указав разделитель(,). Все, номер массива, порядковый номер символа. Не хочешь читать хелп?
Не блин... Мозг сломал, но чет туплю... в общем чтобы сгенерировать пароль я сделал ,чтобы сперва было выбрано ,сколько в нем должно быть заглавных ,сколько там символов и прочее. После ввода фамилии и имени он генерит логин и пароль, как ему сказано и заносит его в HTML страничку... Но вот как осуществить перемешивание готового пароля - все... мозг отказывается обрабатывать такое задание... Чет вроде бы как и просто... но блин никак...
Добавлено (14 Декабрь 2011, 09:45) --------------------------------------------- Вот еще какая проблема всплыла неожиданно... Преобразованием текста заведуют две строки:
Однако есть одно но. Moodle, пакость такой, не воспринимает логины со знаком '
Я убрал из строки (часть строчки) |sch|\'|y|\'|e|yu| символы \' в результате получилась строчка типа |sch||y||e|yu|
однако проблему это не решила - скрипт стал пропускать символы. Как эту проблему решить? Мне бы нужно, чтобы вместо знаков ь и ъ ничего не было. например. фамилия Мартемьянов выглядела не как Martem'yanov. в случае использования данной строки, а просто Martemyanov
Вот собственно две проблемы, которые пока не могу решить. В остально все ок, все работает, но блин... тут подмогните, кто чем может... Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету... Марк Твен
Сообщение отредактировал Игорь - Среда, 14 Декабря 2011, 09:48
фамилия Мартемьянов выглядела не как Martem'yanov. в случае использования данной строки, а просто Martemyanov
Разбираться, если честно, не имею времени, только неужели так сложно всё оставить, как есть, а в итоговой фамилии сделать замену символа ' на пустоту? Хотя бы так пока. Вечная память Андрею Сергееву!
Разбираться, если честно, не имею времени, только неужели так сложно всё оставить, как есть, а в итоговой фамилии сделать замену символа ' на пустоту? Хотя бы так пока.
Не... пустота не прокатит - этого Мудл тоже не любит. Мне даже пришлось добавить в строку русских символов пробел и в английскую добавить || - в конце строки это прокатывает... Хм... А надо кстати попробовать их всех туда загнать в конец... завтра оформлю... а пока я заменил это символом * Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету... Марк Твен
фамилия Мартемьянов выглядела не как Martem'yanov. в случае использования данной строки, а просто Martemyanov
Если заменить в строке Martem'yanov символ ' на пустоту, то получится Martemyanov. То, что и нужно! Как это не прокатит? Вечная память Андрею Сергееву!
так Martem'yanov это уже конвертированое из русского слова... или конвертировать повторно, используя подобный алгоритм?
Наконец-то Если нет времени искать причину в неработающем алгоритме, когда убрана транслитерация ъ, ь, то лучшее решение после обработать строку ещё раз.
тааак.... хорошо, начинает доходить... да да да... (до меня, имею ввиду :))
Так... завтра попробую на работе... Сейчас дома все равно мелкий под боком тут то се#ет, то орет...
А вот как быть с перемешиванием... Я тут смотрел - через список вроде как можно попробовать - там есть вроде команда перемешивания элементов списка... но побуквенно в строки вбить... тоже тупик... Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету... Марк Твен
Блин, кстати да. Не только из массива уже транслитированных символов убрать, а и из исходного. Забыл уже этот свой проект. Вечная память Андрею Сергееву!
Все! Программка вроде как закончена и даже расширена. Если сперва я просто хотел программку, генерирующую список с логинами-паролями, то теперь она сохраняет список на диск (в папку с программой - ну ее... а то я так до Нового года ее модернизировать буду...), отображает при необходимости список этиххх списков, которые уже созданы, генерирует пароль из символов, которые и сколько их должно быть выбраны. В общем... Сам от себя такого не ожидал, выложу ка я ее на форум по Moodl. Может, еще кому сгодится.
YURIY, спасибо еще раз, в программе упомянул о твоей помощи и дал ссылку на сайт о ММВ.
выложил тут http://moodle.org/mod/forum/discuss.php?d=192385 но там... кажется... без регистрации не войдешь. Шум ничего не доказывает. Курица, снесши яйцо, часто клохчет так, словно снесла небольшую планету... Марк Твен