![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#61
|
|
![]() Князь Бореи Сообщений: 5 171 Спасибо сказали: 1349 раз ![]() |
Цитата(Diplomat @ 22 Apr 2008, 15:59) 2 izrukvruki : 1. pass - должна быть строковой переменной. 2. Буквы, цифры, знаки препинания и классические спецсимволы в ASC- это символы с 33-го по 126-й. А ты пытаешься использовать символы с номерами 97-352. При том, что их всего 255. Не лучший вариант, не так ли? ) Используй алгоритм, предложенный Хроно. Там используется не таблица кодов, а переменная-банк символов, что удобнее. Это хрестоматийный вариант- гибок и проверен временем. Вот код для Блиц-Бейсиков, оформленный более понятно и получивший отключаемую фичу: разбиение пароля на блоки-группы символов. Код SeedRnd MilliSecs();рандомизатор. Global Symbols$="ABCDEFGHIJKLMOPQRSTUVWXYZ0123456789";переменная-набор символов, из которых будет строиться пароль Local NGroups = 5;Кол-во групп символов, на которые будет разбит пароль Local NSymbols=5;Кол-во символов в каждой группе Global Separator$="-";Символ-разделитель для групп символов Global Password$; строковая переменная для хранения пароля For Group = 1 To NGroups For Symbol=1 To [COLOR=red]NSymbols[/COLOR] ;строим группу символов, произвольно выбирая их по одному из переменной-набора [COLOR=red]NSymbol[/COLOR]=Rnd(Len(Symbols)-1)+1 Password = Password + Mid( Symbols,[COLOR=red]NSymbol[/COLOR],1) Next ;вставляем разделительный символ в конце каждой группы, если после нее будут другие группы If Group<NGroups Then Password = Password + Separator Next ;Выводим сгенерированный пароль на экран и завершаем программу Print Password WaitKey() End а вот где я красным отметил - одна и таже переменная используется??? ошибки нету? В целом я алгоритм понял - но все равно пароль получается только из первых двух символов набора (AB), если набор поменятть (напрмер на "587") то пароль будет из символов 58 Ладно, спасибище. дальше разбирусь... |
|
|
![]()
Сообщение
#62
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз ![]() |
А у меня тут еще вот какой вариант родился:
Код Procedure.S GeneratePass(Len) #PassChars = "1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" #CharSize = SizeOf(Character) Define I, Pass.S = Space(Len) Define PassCharsCount = Len(#PassChars) - 1 Len - #CharSize For I = 0 To Len Step #CharSize PokeC(@Pass + I, Asc(Mid(#PassChars, Random(PassCharsCount) + 1, 1))) Next I ProcedureReturn Pass EndProcedure Так побыстрее, но не уверена, что удастся успешно перевести на VB. Цитата а вот где я красным отметил - одна и таже переменная используется??? Нет. -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
![]()
Сообщение
#63
|
|
Newbie Сообщений: 21 Спасибо сказали: 0 раз ![]() |
Цитата ...ошибки нету?... ...все равно пароль получается только из первых двух символов набора... Я не выкладываю код с явными ошибками. Данный код работает и генерирует корректные пароли. Полагаю, ты неверно портируешь его на Варсик (ты ведь VB используешь, не так ли?). Поскольку Варсик я уже лет пять в глаза не видел- его особенности успел напрочь позабыть и помочь с корректным портированием не смогу. Ищи свою ошибку. Успехов. |
|
|
![]()
Сообщение
#64
|
|
![]() Князь Бореи Сообщений: 5 171 Спасибо сказали: 1349 раз ![]() |
а есть алгоритм случайного распределения натуральных чисел не больше N....?
Ну например N=5 1 5 4 3 2 |
|
|
![]()
Сообщение
#65
|
|
status message not available Сообщений: 224 Спасибо сказали: 1 раз ![]() |
распределения в чем ?
|
|
|
![]()
Сообщение
#66
|
|
![]() допустим, мяў Сообщений: 24 063 Спасибо сказали: 13374 раза ![]() |
Наверное так: для каждого числа случайная позиция. Если занята - ищем вверх или вниз (случайно).
-------------------- Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская) |
|
|
![]()
Сообщение
#67
|
|
![]() Князь Бореи Сообщений: 5 171 Спасибо сказали: 1349 раз ![]() |
Цитата(Azure @ 14 Jul 2008, 16:36) распределения в чем ? между собой |
|
|
![]()
Сообщение
#68
|
|
![]() допустим, мяў Сообщений: 24 063 Спасибо сказали: 13374 раза ![]() |
Ну, а чем тебе мой не подходит?
-------------------- Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская) |
|
|
![]()
Сообщение
#69
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз ![]() |
всмысле чтобы каждое число встречалось 1 раз?
тогда так: 1. забиваем логический массив нулями (длина - количество чисел) 2. генерим число. 3. если это число уже встречалось (т.е. элемент массива, что ему соответствует - истина), то переходим к п.2 4. отмечаем число в массиве и выводим/сохраняем 5. если нужное количество чисел не достигнуто, идем к п.2 6. получаем некоторое количество неповторяющихся чисел из заданного диапазона. |
|
|
![]()
Сообщение
#70
|
|
![]() Князь Бореи Сообщений: 5 171 Спасибо сказали: 1349 раз ![]() |
какой-то у тебя не очень рациональный алгоритм...
организовать цикл по А от 1 до N, может брать первое число А=1 , и генерировать число I - место А в масcиве, если это место уже занято, то I=I+1, если I больше N, то I=I-N |
|
|
![]()
Сообщение
#71
|
|
![]() допустим, мяў Сообщений: 24 063 Спасибо сказали: 13374 раза ![]() |
Всегда так делал. Если у тебя порядка 10000 элем. - и не заметишь.
Добавлено ([mergetime]1216216686[/mergetime]): По другому: организовать список из А эл. Для эл. Массива по rnd эл. Из списка. Затем эл. Списка исключать. -------------------- Вокруг столько фильмов, книг, музыки - а природа какая невероятная!
Если тебе скучно жить - ты совсем дурак. (Татьяна Черниговская) |
|
|
![]()
Сообщение
#72
|
|
![]() Князь Бореи Сообщений: 5 171 Спасибо сказали: 1349 раз ![]() |
Прошу помощи!
Пишу на VisualBasic. Есть число следующего вида Z=ddmmnnnn или ddmmnnn (7 или 8 цифр в числе, но начало всегда стабильно ddmm) как проверить, что: 1) Z это число (что внутри нет "плохих" символов (пробелы, буквы, пр. знаки)) 2) mm - это месяц в двоичном формате (т.е. 01..12 допустимо, 1..9, 13... недопустимо) 3) dd - это день от 01..31 допустимо 4) существует файл "C:\ddmmnnnn" особо проблемы с 1 и 4 пунктом |
|
|
![]()
Сообщение
#73
|
|
good news, everyone! Сообщений: 918 Спасибо сказали: 93 раза ![]() |
а как пробовал?
Добавлено ([mergetime]1232359350[/mergetime]): 1. десятичное число? засовываешь в строку, вырезаешь символ проверяешь цифра или нет, второй вариант - пытаешься сконвертить в число, если ловишь exception, значит не число. Добавлено ([mergetime]1232359389[/mergetime]): 4. api функция fileexists ну или как то так -------------------- этъя опять
|
|
|
![]()
Сообщение
#74
|
|
![]() Князь Бореи Сообщений: 5 171 Спасибо сказали: 1349 раз ![]() |
а как проверять цифра или нет? Так понимаю нужно проверить принадлежность символа к множеству ("0", "1",...,"9") Но не знаю как работать с множествами.
4. ага. PathFileExists |
|
|
![]()
Сообщение
#75
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз ![]() |
Цитата(izrukvruki @ 19 Jan 2009, 13:12) а как проверять цифра или нет? Так понимаю нужно проверить принадлежность символа к множеству ("0", "1",...,"9") Но не знаю как работать с множествами. вот вам все какие-то множества... по аски-коду проверь |
|
|
![]()
Сообщение
#76
|
|
![]() Князь Бореи Сообщений: 5 171 Спасибо сказали: 1349 раз ![]() |
это как?
|
|
|
![]()
Сообщение
#77
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз ![]() |
if (z[i]<='0' && z[i]>='9') тогда десятичная цифра.
|
|
|
![]()
Сообщение
#78
|
|
![]() Оранжевый Канцлер Тьмы Сообщений: 2 344 Спасибо сказали: 618 раз ![]() |
А регулярные выражения заюзать религия не позволяет? )
-------------------- I am the fury in your eyes. I am reason, I am vice.
Careful what you say You may regret it, Careful what you wish You just might get it. |
|
|
![]()
Сообщение
#79
|
|
![]() Князь Бореи Сообщений: 5 171 Спасибо сказали: 1349 раз ![]() |
а это как?
|
|
|
![]()
Сообщение
#80
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз ![]() |
Цитата(Shaidar Haran @ 19 Jan 2009, 13:53) А регулярные выражения заюзать религия не позволяет? ) а в бейсике они есть? |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 22 July 2025 - 06:55 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|