Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Случайная выборка строки из файла для Web игры

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

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 20:34, 15-03-2012

 

Аватара для Delirium

Ветеран


Сообщения: 5624
Благодарности: 936

Профиль | Отправить PM | Цитировать


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

-------

Пройденные курсы:
[Microsoft №10174 Sharepoint], [SharePoint]
Мои проекты:[CheckAdmins], [NetSend7], [System Uptime], [Remote RAdmin LogViewer],[Netdom GDI], [Holidays - напоминалка о днях рождения]

А я офис-гуру :)

Это сообщение посчитали полезным следующие участники:

Отправлено: 01:39, 16-03-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Чайниг, Вот.
В ID хранится сгенерированое число от 1 до количества строк из файла.
В CountLine хранится общее количество строк из файла. Хотя можно и напрямую, без использования этой переменной
Код: Выделить весь код
...
   int ID = 1 + rand() % lst->Count;
...
примерно так.
Код: Выделить весь код
...
#include <cstdlib>
...
...
...
   TStringList *lst = new TStringList;
   lst->LoadFromFile("ПУТЬ_К_ВАШЕМУ_ТХТ_ФАЙЛУ_С_ID");
   int CountLine = lst->Count;
   srand(time(0));
   int ID = 1 + rand() % CountLine;
...

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:40, 16-03-2012 | #3


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Код: Выделить весь код
#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 <= N; i++)
	{
		cout << "Sluchainie chisla: ";
		sum = 0;
		for(int j = 1; j <= L; j++)
		{
			r = rand() % 10 + 1;
			cout << r << " ";
			sum += r;
		}
		sred = (float)sum / L;
		cout << "Sred arifm = " << sred << endl;
	}
	system("pause");
	return 0;
}

выводит 3 любых числа из 10 ID,
куда мне впихнуть код



Цитата Drongo:
примерно так.
Код:
...
#include <cstdlib>
...
...
...
TStringList *lst = new TStringList;
lst->LoadFromFile("ПУТЬ_К_ВАШЕМУ_ТХТ_ФАЙЛУ_С_ID");
int CountLine = lst->Count;
srand(time(0));
int ID = 1 + rand() % CountLine;
... »

Последний раз редактировалось Drongo, 17-03-2012 в 14:33. Причина: code


Отправлено: 22:20, 16-03-2012 | #4


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


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

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 14:36, 17-03-2012 | #5


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 18:57, 17-03-2012 | #6


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


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

Код: Выделить весь код
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include <cstdlib>

#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;
}
//---------------------------------------------------------------------------

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:25, 18-03-2012 | #7


Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


Drongo, а в MVS это какое расширение файла?

Отправлено: 20:24, 18-03-2012 | #8


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


это для C++ builder

Отправлено: 21:21, 18-03-2012 | #9


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Цитата ferget:
это для C++ builder »
Да вроде и для MVS сгодится, обработчики у кнопок одни.

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

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Последний раз редактировалось Drongo, 19-03-2012 в 23:23. Причина: опечатка...


Отправлено: 14:27, 19-03-2012 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - [решено] Случайная выборка строки из файла для Web игры

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Имя файла из строки копируемого файла. Seryoga204 Скриптовые языки администрирования Windows 20 16-03-2011 21:15
CMD/BAT - [решено] Скрипт для случайного выбора строки из файла Anonymоus Скриптовые языки администрирования Windows 8 14-06-2010 04:03
Брандмауэр Dr.Web – новый компонент в продуктах Dr.Web для защиты Windows-ПК OSZone News Новости информационных технологий 0 15-03-2010 22:30
[решено] Удаление строки из файла gregaz AutoIt 2 16-07-2009 18:46
выборка случайной строки из таблицы на MySQL Vlad Drakula Вебмастеру 5 19-10-2004 05:55




 
Переход