Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.03.2011, 14:19   #11
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

phomm, Каунт - количество (пусть будет 100). Индексы стрингЛиста исчисляются от нуля. Т.Е. 0й индекс = первый элемент. 99й индекс = 100й элемент.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 18.03.2011, 14:35   #12
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Johnson, не спорьте.
phomm абосолютно прав.
Индексы от нуля. Но Count - это Количество.
Random(Count) (при Count = 100, как в вашем примере),
вернёт число 0<= Random(Count) < 100
Т.е. от 0 до 99 что правильно.

Random(Count-1) - ошибочно! (последняя строчка (с индексом 99) никогда не выпадет!)
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.03.2011, 14:37   #13
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Извиняюсь за дезу. Первый раз об этом услышал.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 18.03.2011, 14:49   #14
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Выяснилось одно но. Когда я запускаю программу. Она выдает случайные строчки точно в таком же порядке как это было в прошлые разы запуская ее.
Как от этого избавится?
celovec вне форума Ответить с цитированием
Старый 18.03.2011, 14:50   #15
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

на OnCreate формы повесить следующее первым пунктом:

Код:
Randomize;
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 18.03.2011, 14:53   #16
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Да действительно помогло. Кто-то из участников темы даже писал об этом выше. Но я почему-то не придал этому значения. Еще раз спасибо.
celovec вне форума Ответить с цитированием
Старый 25.03.2011, 08:47   #17
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Хочется снова продолжить эту тему. Открываемый файл вырос до 8 мегабайт. Больше расти не должен. Но меня достаточно сильно беспокоит нагрузка на компьютер. Открывать и выбирать случайную строчку с файла приходится около 20 раз в минуту.
Расскажите пожалуйста в Теории как происходит открытие и выбор случайной строчки.
При каждом открытие этот файл записывается в память RAM и происходит поиск случайно строчки? В памяти он занимает этих же 8 мегабайт?
celovec вне форума Ответить с цитированием
Старый 25.03.2011, 09:04   #18
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

пусть TS:TStringList, в который вы грузите ваши данные..

Код:
memo1.lines.add(SizeOf(TS));
напишет размер в байтах этого массива.
Если выборка строки происходит достаточно часто - то не выгужайте лист. выбрать случайный элемент намного меньше ресурсов займет, чем каждый раз загружать список. А размер в памяти... на современных компьютерах это не актуально.
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 25.03.2011, 09:13   #19
celovec
Форумчанин
 
Регистрация: 15.06.2007
Сообщений: 182
По умолчанию

Код:
var stringBuff:TStringList;
begin
 stringBuff:=TStringList.create;
 stringBuff.loadFromFile('путь к файлу, в котором текст');
 ShowMessage(stringBuff[random(stringBuff.count-1)]; выводим случайную строку
 StringBuff.free

Не выгружать лист, тоесть вы предлагаете за комментировать эту строчку:
Код:
 StringBuff.free
?
celovec вне форума Ответить с цитированием
Старый 25.03.2011, 09:16   #20
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

var stringBuff:TStringList; - делаййте глобальной.
и при создании формы (OnCreate):
Код:
 stringBuff:=TStringList.create;
 stringBuff.loadFromFile('путь к файлу, в котором текст');
по таймеру либо каждый раз когда нужно получить строку:
Код:
 ShowMessage(stringBuff[random(stringBuff.count-1)]; выводим случайную строку
По уничтожении фрмы (OnDestroy):
Код:
 StringBuff.free
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
случайно удалил программу voldemen Компьютерное железо 8 29.09.2010 15:32
работа с большим объемом данных Ckif Microsoft Office Excel 1 14.09.2010 17:05
случайно число (rand) Abuhamed PHP 4 20.02.2010 13:05
Случайно но не повторяясь! uraura Общие вопросы Delphi 8 30.11.2008 19:46
удаление строчки из файла tigr1991 Общие вопросы Delphi 4 01.02.2008 22:51