Всем привет! Подскажите пожалуйста как сделать следующее:
Нужно чтобы бот считывал рандомную строку из текстового файла (допустим 55.txt) с фразами на русском, английском и любом другом языке и закидывал эту строку в буфер. При этом нужно, чтобы следующая рандомная фраза не повторялась с предыдущей.
Еще у меня вопрос по месту хранения файла 55.txt, он у всех пользователей моего бота должен храниться в одном и том же месте? допустим диск С, папка bot ? А как быть с пользователями у которых нет диска С, а вместо него стоит другая буква? Ну и в целом было бы более удобно если можно было бы хранить 55.txt на рабочем столе каждого пользователя рядом с bot.exe и при этом бот бы понимал где искать этот файл...
1. TWIN - 24 Июня, 2020 - 11:26:37 - перейти к сообщению
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("Файл не найден");
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("Файл не найден");