Викторина для 5 версии
Re: Викторина для 5 версии
кидаете файл с базой вопросов, желательно от этой викторины, в папку pluginsdata, затем сам плагин кидаете в папку плагинс и запускаете плагин в клиенте
Re: Викторина для 5 версии
ты на других не смотриcilvay писал(а):А создателю, написавшему плагин замены активного процесса и версии программы, бана не надо?
Чат г.Тольятти и Самарской области
Адрес мастер сервера: chat.aido.ru
Адрес мастер сервера: chat.aido.ru
Re: Викторина для 5 версии
Под вайном тормозит ужасно. Ответило на вопрос, а тем временем прошло уже три другихcilvay писал(а):кидаете файл с базой вопросов, желательно от этой викторины, в папку pluginsdata, затем сам плагин кидаете в папку плагинс и запускаете плагин в клиенте

Под вендой работает, но отвечает мгновенно

Из крайности в крайность

Ты каждый раз делаешь поиск по файлу, или затягиваешь файл и уже в памяти ищешь?
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Re: Викторина для 5 версии
все происходит исключительно в оперативной памяти. Просто вайну до винды еще очень далеко...
Re: Викторина для 5 версии
Нее, Я думаю это значит, что алгоритм не оптимальныйcilvay писал(а):все происходит исключительно в оперативной памяти. Просто вайну до винды еще очень далеко...

Нужно построить индекс хотя бы по первой букве и упорядочить по алфавиту вопросы.
вайн, конечно, требует дополнительных ресурсов, но не до такой степени, чтобы на PC отрабатывать мгновенно, а под вайном вообще ложиться.
Планируешь развивать? Или просто балуешься? Имею ввиду настройки задержек, случайностей всяких и т.д.
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Re: Викторина для 5 версии
_
Последний раз редактировалось Cilvay 23:30, 21.05.2020, всего редактировалось 1 раз.
Re: Викторина для 5 версии
А можешь в кратце обрисовать как всё происходит?cilvay писал(а):если честно, то балуюсь. Под вайн подгонять не собираюсь, тк с алгоритмом все впорядке и под эмулятор подстраиваться нет смысла. Думая дальше можно будет накрутить всяких рандомных задержек, пропусков и т.д.
Дело в том, что наверное задержка происходит на каком-то одном действии, которое оптимизируется на PC как-то аппаратно, что ли...
Попробуй отсортировать массив данных по алфавиту. Так из него будет проще выбирать.
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Re: Викторина для 5 версии
Вот так:
Кстати, накрутил всяких прибамбасов: тык
text:=utext;
delete(text,14,length(text));
delete(text,1,7);
if text='ВОПРОС' then
begin
KillTimer(Form1.Handle,1);
vobr:=utext;
delete(vobr,1,15);
vobr:=Parse('(',vobr,1);
delete(vobr, length(vobr)-1, 2);
form1.memo2.lines.add('Вопрос до обработки: '+vobr);
if (vobr[length(vobr)]='.') or (vobr[length(vobr)]='?') then
vobr:=vobr else
vobr:=vobr+'.';
form1.memo2.lines.add('Обработанный вариант: '+vobr);
for i := 0 to form1.Memo1.Lines.Count - 1 do
begin
vs:=parse('|',form1.Memo1.Lines,1);
if vs=vobr then
begin
form1.memo2.lines.add('Ответ найден');
if random(form1.SpinEdit2.Value)=0 then begin
form1.memo2.lines.add('Вывод ответа будет пропущен');
end else begin
rch:=form1.SpinEdit3.Value+random(form1.SpinEdit1.Value);
form1.memo2.lines.add('Ответ будет выведен через: '+inttostr(rch)+' миллисекунд');
otv:=parse('|',form1.Memo1.Lines,2);
//sleep(tt);
SetTimer(Form1.Handle,1,rch,@Timer);
end;
end;
end;
Кстати, накрутил всяких прибамбасов: тык
Re: Викторина для 5 версии
Фейл у вас весь в том, что есть редактирование фраз...
Когда пишете программу, всегда думайте о том, что её может затем поддерживать психопат и насильник, который знает где вы живёте.
— Martin Golding
— Martin Golding
Re: Викторина для 5 версии
Думаю проблема именно из-за Memo. Почему именно его выбрал как хранилище базы, а не массив?cilvay писал(а):Вот так:Код: Выделить всё
for i := 0 to form1.Memo1.Lines.Count - 1 do begin vs:=parse('|',form1.Memo1.Lines[i],1); if vs=vobr then begin // skip end; end;
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Re: Викторина для 5 версии
Мне мемо кажется удобнее. Тем более в win системах весь текст в мемо хранится в памяти. А на вайне он видимо как кеш на жестком диске
Re: Викторина для 5 версии
TMemo.Lines это класс TMemoStrings. при обращении к Lines мы попадаем в функциюcilvay писал(а):Мне мемо кажется удобнее. Тем более в win системах весь текст в мемо хранится в памяти. А на вайне он видимо как кеш на жестком диске
Код: Выделить всё
function TMemoStrings.Get(Index: Integer): string;
var
Text: array[0..4095] of Char;
begin
Word((@Text)^) := Length(Text);
SetString(Result, Text, SendMessage(Memo.Handle, EM_GETLINE, Index,
Longint(@Text)));
end;
Так как Wine это не нативная среда для winapi то отсюда и тормоза.
Лучше использовать не Memo.Lines а хотя бы TStringList вот там действительно будет все в памяти крутится и никаких проволочек не будет.
P.S. Этот пост никак не означает что я одобрительно отношусь к данному плагину

Re: Викторина для 5 версии
Если в этом случае использовать ассоциативный массив, в котором ключём будет вопрос, а значением ответ, то выборку можно производить без цикла, а прямым обращением с проверкой на существование. (понятно, что какой-то цикл будет, но он будет внутри и он, наверное, оптимизирован до нельзя)cilvay писал(а):Мне мемо кажется удобнее.
К сожалению в делфи нет поддержки ассоциативных массивов, но есть возможность выкрутиться: http://ru.wikipedia.org/wiki/Ассоциатив ... сив#Delphi
В этом случае parse нужно будет делать на этапе вычитки файла.
Это более оптимально с точки зрения алгоритма, я думаю. Т.е. это уменьшит потребление ресурсов и на PC.
А на вайне он видимо как кеш на жестком диске

Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Re: Викторина для 5 версии
О, ну вот и подтянулись ещё дельфисты
Я просто под десктоп кодил оочень давно и оочень не сознательно...
cilvay, попробуешь? Там на пару минут работы, вроде...

Вот и я говорю, что надо бы какую-то структуру другую использовать. Ведь мемо, оно для вывода в форме, вроде как. Т.е. назначение иное.-=SJ=- писал(а): Как видим чтобы запросить строку у мемо - ему посылается winapi сообщение EM_GETLINE что никак нельзя назвать оптимальным.
Так как Wine это не нативная среда для winapi то отсюда и тормоза.
Лучше использовать не Memo.Lines а хотя бы TStringList вот там действительно будет все в памяти крутится и никаких проволочек не будет.
cilvay, попробуешь? Там на пару минут работы, вроде...
Web-интерфейс серверных логов ——> http://commfort.com/ru/forum/viewtopic.php?t=6618
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Web-статистика посещаемости чата —> http://commfort.com/ru/forum/viewtopic.php?t=6546
Благодарности —> R753244967524 Z664725275810 U806184306803 ЯД:41001743355185
Re: Викторина для 5 версии
Вот запихнул в другой компонент
Последний раз редактировалось Cilvay 17:29, 18.10.2010, всего редактировалось 1 раз.