Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Как сделать так, чтобы бот считывал рандомную строку из файла и...

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

1. TWIN - 24 Июня, 2020 - 11:26:37 - перейти к сообщению
Всем привет! Подскажите пожалуйста как сделать следующее:

Нужно чтобы бот считывал рандомную строку из текстового файла (допустим 55.txt) с фразами на русском, английском и любом другом языке и закидывал эту строку в буфер. При этом нужно, чтобы следующая рандомная фраза не повторялась с предыдущей.

Еще у меня вопрос по месту хранения файла 55.txt, он у всех пользователей моего бота должен храниться в одном и том же месте? допустим диск С, папка bot ? А как быть с пользователями у которых нет диска С, а вместо него стоит другая буква? Ну и в целом было бы более удобно если можно было бы хранить 55.txt на рабочем столе каждого пользователя рядом с bot.exe и при этом бот бы понимал где искать этот файл...
2. Kibor - 24 Июня, 2020 - 12:44:19 - перейти к сообщению
 TWIN пишет:
Еще у меня вопрос по месту хранения файла 55.txt, он у всех пользователей моего бота должен храниться в одном и том же месте? допустим диск С, папка bot ?

pathfolder- возвращает string типа "C:\Program Files (x86)\Kibor\"

Остальное тоже можно сделать.
3. Zireael - 24 Июня, 2020 - 15:33:55 - перейти к сообщению
 Цитата:
Нужно чтобы бот считывал рандомную строку из текстового файла

Лучше прочитать файл в массив, перемешать его и уже выполнять нужные действия.
CODE:
string path="C:\55.txt"; // путь к файлу
string array[9999];
int i, j;


if(fopen(path, "r")) // открыть файл для чтения
{
for(i=0; freadline(array[i])!=0 && i<sizearray(array)-1; i++){} // прочитать файл в массив
fclose(); // закрыть файл

int count_line = i;
messagebox("Всего строк в файле: "+format(count_line));

for(j=0; j<count_line; j++) // цикл для перемешивания массива
{
int random1 = rand(0, count_line);
int random2 = rand(0, count_line);

string temp = array[random1];
array[random1] = array[random2];
array[random2] = temp;
}


// тут нужные действия
for(i=0; i<5; i++)
{
messagebox(array[i]);
}

}
else messagebox("Файл не найден");

Powered by ExBB FM 1.0 Final