Заказать игровой сервер Контакты (заказать плагин/исправить ошибки/другое) Пожертвовать Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 1
  • 1
Как взять случайную строку из файла txt
Valeriks Дата: Среда, 02.04.2014, 11:56:50 | Сообщение # 1
Сообщений: 100
Репутация: 3 [ +/- ]
Доброго всем дня.
Помогите допилить. Есть код который берет из файла первую строчку
Код
new Handle:testRead = OpenFile("cfg/wtf.txt", "r");
new String:lineBuffer[255];
ReadFileLine(testRead, lineBuffer, sizeof(lineBuffer));
PrintToServer("First line in file: %s", lineBuffer);
CloseHandle(testRead);

но мне нужно чтобы при обращении к файлу бралась случайная строчка, а не всегда первая. Короче нужно прикрутить рандомчик к выше указанным глупостям =)
 
Darkeneez Дата: Среда, 02.04.2014, 13:40:09 | Сообщение # 2
Сообщений: 221
Репутация: 18 [ +/- ]
Цитата Valeriks ()
но мне нужно чтобы при обращении к файлу бралась случайная строчка, а не всегда первая. Короче нужно прикрутить рандомчик к выше указанным глупостям =)

Посчитай сколько всего строчек в файле. Потом выбери рандомное число от 1 до количества строчек в твоем файле. Читай нужное число раз файлик.
 
Valeriks Дата: Среда, 02.04.2014, 14:00:25 | Сообщение # 3
Сообщений: 100
Репутация: 3 [ +/- ]
Цитата Darkeneez ()
Посчитай сколько всего строчек в файле. Потом выбери рандомное число от 1 до количества строчек в твоем файле. Читай нужное число раз файлик.

Я именно так и сделал только что =) по другому никак..
посчитал, потом взял общее количество и загнал случайный результат в переменную
Код
примерно так
new Test_Random = GetRandomInt(1, iNumLin);

поставленная цель выполнена ulibka
 
MERC Дата: Воскресенье, 06.07.2014, 17:52:25 | Сообщение # 4
Сообщений: 9
Репутация: 0 [ +/- ]
Цитата Darkeneez ()
Посчитай сколько всего строчек в файле.

А не могли бы поподробнее рассказать как посчитать кол-во строк и какой командой обратиться к строке? И не будет ли большой нагрузки, если в файле будет тысяч 10 строк? Размер фала примерно 6 мб...
 
Sallcom Дата: Среда, 01.10.2014, 13:26:23 | Сообщение # 5
Сообщений: 205
Репутация: 31 [ +/- ]
Цитата MERC ()
А не могли бы поподробнее рассказать как посчитать кол-во строк и какой командой обратиться к строке?

Код

public OnMapStart(){
      new Handle:hFile = OpenFile("cfg/server.cfg", "r"), String:sLine[64], i;
      while(ReadFileLine(hFile, sLine, 64))
          i++;
      CloseHandle(hFile);
}


Сообщение отредактировал Sallcom - Среда, 01.10.2014, 13:27:11
 
  • Страница 1 из 1
  • 1
Поиск: