Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Без описания
xemz
Отправлено: 10 Мая, 2018 - 03:33:57
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 25
Дата рег-ции: Апр. 2018  
Репутация: 0




Всем доброго времени суток, вот беру таким способом загружаю текстовой файл в массив text .

string text[1000]; // файл не должен превышать 1000 строк
if (fopen("C:\Users\abc\Desktop\111.txt", "r" ) !=0) // если файл открылся
{
for(int i=0; freadline(text[i])!=0; i++){} // читаем по строке до конца файла
fclose(); // закрываем файл
}

и потом могу брать из него по порядку сделав там переменную и постоянно её ++.

А можно ли брать из этого массива рандомные строки и так чтоб они не повторялись? И если можно то когда кончатся строки что останется в массиве? 0? или что то другое?) заранее спасибо

(Отредактировано автором: 10 Мая, 2018 - 03:34:21)

 
 Top
Dantes3000
Отправлено: 10 Мая, 2018 - 04:07:48
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




Это немного не то. Проверка чтобы не предыдущее значение не было такое же как следущее.
Спойлер (Отобразить)

(Отредактировано автором: 10 Мая, 2018 - 04:24:04)

 
 Top
xemz
Отправлено: 10 Мая, 2018 - 04:21:37
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 25
Дата рег-ции: Апр. 2018  
Репутация: 0




тут не будут повторяться подряд 2 но третье значение может быть как первое же? то есть в итоге всё равно повторится?)

А можно что бы 1 строчку только 1 раз он брал??? То есть разбирал всю 1000 строк но рандомно. Без повторов.

(Отредактировано автором: 10 Мая, 2018 - 04:22:05)

 
 Top
Dantes3000
Отправлено: 10 Мая, 2018 - 04:27:53
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 1489
Дата рег-ции: Июнь 2016  
Репутация: 58




CODE:
string text[1000]; // файл не должен превышать 1000 строк
int texti[1001]; //номера всех рандомный строк
int r; //рандомная строка
int k=1; //для счетчика в массиве texti
//texti будет начинаться с [1] потому что не спрашивай почему



if (fopen("C:\Users\abc\Desktop\111.txt", "r" ) !=0) // если файл открылся
{
for(int i=0; freadline(text[i])!=0; i++){} // читаем по строке до конца файла
fclose(); // закрываем файл
}

r=rand(0, 1000);

for(int g=k; g!=0; g--)
{
p:if(r==texti[g]) {r=rand(0, 1000); goto p;}
else {texti[k]=r; k++;}
}

Я не знаю будет ли работать. 4 утра...днём бы что-то по-лучше придумал.
(Добавление)
CODE:
string text[1000]; // файл не должен превышать 1000 строк
int texti[1001]; //номера всех рандомный строк
int r; //рандомная строка
int k=1; //для счетчика в массиве texti
//texti будет начинаться с [1] потому что не спрашивай почему



if (fopen("C:\Users\abc\Desktop\111.txt", "r" ) !=0) // если файл открылся
{
for(int i=0; freadline(text[i])!=0; i++){} // читаем по строке до конца файла
fclose(); // закрываем файл
}

st:;
r=rand(0, 1000);

for(int g=k; g!=0; g--)
{
if(r==texti[g]) goto st;
}
texti[k]=r; k++;

(Отредактировано автором: 10 Мая, 2018 - 04:34:29)

 
 Top
Zireael
Отправлено: 10 Мая, 2018 - 10:49:23
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4465
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
А можно ли брать из этого массива рандомные строки и так чтоб они не повторялись?

Можно перемешать массив, т. е. поменять местами строки.
code (Отобразить)
 
 Top
xemz
Отправлено: 10 Мая, 2018 - 14:15:08
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 25
Дата рег-ции: Апр. 2018  
Репутация: 0




Большое спасибо =) буду экспериментировать. с перемешиванием массива мне кажется получше. Можно создать доп файл с перемешанными строками и брать из него, тогда если скрипт остановить можно потом продолжить с места остановки.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 4 (гостей: 4, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by