Есть текстовый файл в нем идет информация небольшая через строчку
Для примера пусть есть файл anec.txt в нем хранятся N анекдотом чере строчку
Надо вывести 1 из них случайным образом в мемо
Подскажите как организовать
Информация из файла
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Создать массив стринглистов (или просто строк), в него считать весь файл, потом выбрать запись с номером random(stringlist.strings.count).
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
А по памяти нормально будет
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
- Игорь Акопян
- Сообщения: 1440
- Зарегистрирован: 13 окт 2004, 17:11
- Откуда: СПБ
- Контактная информация:
ну можно пропускать случайное количество строк при чтении из файла 


Сейчас средний объем оперативки компа - 0.5 - 1 гиг. У тебя текстовый файл с гигабайтом анекдотов?
Хватит, думаю.
Хватит, думаю.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
-
- Сообщения: 230
- Зарегистрирован: 31 авг 2006, 13:11
Можно сделать предварительную индексацию
например завести файл индексов например
4
1 1
2 4
3 8
4 9
где первая строка - кол-во анекдотов
далее первое число номер анекдота вророе - строка его начала.
и потом читаем из файла первую строку делаем рандом от первой строки.
находим начало анекдота и конец (следующая строка)
например завести файл индексов например
4
1 1
2 4
3 8
4 9
где первая строка - кол-во анекдотов
далее первое число номер анекдота вророе - строка его начала.
и потом читаем из файла первую строку делаем рандом от первой строки.
находим начало анекдота и конец (следующая строка)
-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
Короче загнал все в list и потом оттуда достаю
Но думаю проблема будет если файл пойдет от гига и выше
Но пока маленький нормалньо
Но думаю проблема будет если файл пойдет от гига и выше
Но пока маленький нормалньо
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.