C/C++ - [решено] Случайная выборка строки из файла для Web игры

Аватара пользователя
Чайниг

C/C++ - [решено] Случайная выборка строки из файла для Web игры

Сообщение Чайниг »

Суть в том что есть ID вещей,он находится в .txt блокноте,можно ли написать такой рандом который будет сам выбирать этот id и выдавать эту вещь пользователью.

Можно огрызки кода,или пример мне все подойдет.
Аватара пользователя
Delirium

Re: C/C++ - [решено] Случайная выборка строки из файла для Web игры

Сообщение Delirium »

считываешь файл в память, берешь количество строк. СОздаешь RAND число (
http://www.cplusplus.com/reference/c.../cstdlib/rand/
) в диапазоне от 1 до количества строк. Считываешь полученную строку и отдаешь пользователю.
Аватара пользователя
Чайниг

Re: C/C++ - [решено] Случайная выборка строки из файла для Web игры

Сообщение Чайниг »

Допустим вот у меня есть код,





Код:

Код: Выделить всё

#include< iostream >
#include< cstdlib >
#include< ctime >
#define L 10
#define N 3
using namespace std;
int main()
{
	int r;
	int sum;
	float sred;
	time_t t;
	srand((unsigned) time(&t));
	for(int i=1; i 



выводит 3 любых числа из 10 ID,

куда мне впихнуть код








Цитата Drongo:



примерно так.

Код:

...

#include

...

...

...

TStringList *lst = new TStringList;

lst->LoadFromFile("ПУТЬ_К_ВАШЕМУ_ТХТ_ФАЙЛУ_С_ID");

int CountLine = lst->Count;

srand(time(0));

int ID = 1 + rand() % CountLine;

...
C/C++ - [решено] Случайная выборка строки из файла для Web игры
Аватара пользователя
Drongo

Re: C/C++ - [решено] Случайная выборка строки из файла для Web игры

Сообщение Drongo »

Чайниг, Вот.

В ID хранится сгенерированое число от 1 до количества строк из файла.

В CountLine хранится общее количество строк из файла. Хотя можно и напрямую, без использования этой переменной



Код:

Код: Выделить всё

...
   int ID = 1 + rand() % lst->Count;
...

примерно так.



Код:

Код: Выделить всё

...
#include 
...
...
...
   TStringList *lst = new TStringList;
   lst->LoadFromFile("ПУТЬ_К_ВАШЕМУ_ТХТ_ФАЙЛУ_С_ID");
   int CountLine = lst->Count;
   srand(time(0));
   int ID = 1 + rand() % CountLine;
...
Аватара пользователя
Drongo

Re: C/C++ - [решено] Случайная выборка строки из файла для Web игры

Сообщение Drongo »

Чайниг, Вообще-то у меня к графическому интерфейсу был вариант. У вас консольный вариант.
Аватара пользователя
Чайниг

Re: C/C++ - [решено] Случайная выборка строки из файла для Web игры

Сообщение Чайниг »

Drongo,дайте тогда код к вашему варианту,он скорее всего графическим будет.

эта версия для бета теста
Аватара пользователя
Drongo

Re: C/C++ - [решено] Случайная выборка строки из файла для Web игры

Сообщение Drongo »

Компоненты: Button1, Button2, OpenDialog1, Label1





Код:

Код: Выделить всё

//---------------------------------------------------------------------------
#include 
#pragma hdrstop
#include 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
TStringList *lst;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
// Создаём список------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
   lst = new TStringList();
}
// Открываем текстовый файл и грузим в список lst----------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
   if(OpenDialog1->Execute()){
      lst->LoadFromFile(OpenDialog1->FileName);
      Button2->Enabled = true;
     }
}
// Генерируем номер строки---------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
   srand(time(0));
   Label1->Caption = String("Случайная строка: ") + 1 + rand() % lst->Count;
}
// Освобождаем память при выходе---------------------------------------------
void __fastcall TForm1::FormDestroy(TObject *Sender)
{
   delete lst;
}
//---------------------------------------------------------------------------
Аватара пользователя
Чайниг

Re: C/C++ - [решено] Случайная выборка строки из файла для Web игры

Сообщение Чайниг »

Цитата ferget:



это для C++ builder
C/C++ - [решено] Случайная выборка строки из файла для Web игры




Да вроде и для MVS сгодится, обработчики у кнопок одни.



Чайниг, Я не пользуюсь Visual Studio, но думаю создать новый проект и накидать компонентов труда составить не сложно. А дальше обработчики у кнопок OnClick и у формы OnCreate и OnDestroy, вставляете код из этих функций что я привёл в листинге и компилируете проект.
Ответить

Вернуться в «Программирование и базы данных»