- Регистрация
- 07.11.2011
- Сообщения
- 21
- Благодарностей
- 0
- Баллы
- 0
Подскажите как счетчику присваивать случайное число в диапазоне, несколько раз в шаблоне и чтобы эти случайные числа не повторялись.
Обращаем Ваше внимание на то, что данный пользователь заблокирован.
Не рекомендуем проводить с 7make какие-либо сделки.
А как же много поточный режим? Он будет брать из одного файла?самый рациональный подход - 1 раз сгенерить диапазон в файл и брать из списка случайную строку с удалением.
избавитесь от лишних проверок, меньше ресурсов и времени затратите.
Вы про массив Java? Я других не наше в ZennoСкладывайте все числа в список и при использовании нового проверяйте не содержится ли оно уже в списке этом. Как вариант.
Если диапазон чисел большой и генераций не очень много. То вот пример.А как же много поточный режим? Он будет брать из одного файла?
Вы про массив Java? Я других не наше в Zenno
Спасибо
Каждый поток будет брать свою строку и удалять её из файла, таким образом со многопотоком проблем не будет.А как же много поточный режим? Он будет брать из одного файла?
А тут имелось ввиду наоборот сохранение в файл данных, которые были сгенерированы при выполнении.Вы про массив Java? Я других не наше в Zenno
А как проверить не содержится ли число в списке?Складывайте все числа в список и при использовании нового проверяйте не содержится ли оно уже в списке этом. Как вариант.
var check = project.Variables["url"].Value; // имя переменной, которую нужно найтиА как проверить не содержится ли число в списке?
Благодарю) Все получилось. Все таки хорошо C# знать))
// получаем массив
string value = project.Variables["array"].Value;
int n = Convert.ToInt32(project.Variables["max"].Value.Trim());
List<int> array = new List<int>();
if (!String.IsNullOrWhiteSpace(value))
{
string[] split = value.Split(new [] {";"}, StringSplitOptions.RemoveEmptyEntries);
foreach (string str in split) array.Add(Convert.ToInt32(str.Trim()));
}
// генерируем значение
var rnd = new Random();
for(int i=0;i<n;i++)
{
int next = rnd.Next(Convert.ToInt32(project.Variables["min"].Value.Trim()), Convert.ToInt32(project.Variables["max"].Value.Trim()));
if (!array.Contains(next))
{
// добавим значение
array.Add(next);
// запомним в массиве
project.Variables["array"].Value = String.Join(";", array);
// вернём результат
return next;
}
}