Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi
Войти
Регистрация
Восстановить пароль
 
KAPATEJlb
2 / 2 / 0
Регистрация: 05.02.2017
Сообщений: 148
1

Не могу разобраться

28.03.2017, 17:57. Просмотров 272. Ответов 4
Метки нет (Все метки)

Написал программку,но она как бы не очень хорошо работает)
Суть ее заключается в том,что бы если в определенном текстовом файле появляется фраза из edit ,то она ее стирает из файла,нажимает клавишу (ну открытие чата в игрушке) и вставляет текст из другого edit'a.
Суть в том,что при первых действиях прописанных в коде ,она работает,а в дальнейшем нет. Также если я выполнил первые строчки кода,то только потом оно среагирует среагирует на след.слово в в след editе..
я думаю,быть может как-то оператор else вставить?Прилагаю часть кода(дальше прост edit'ы меняются...

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
a12:=Edit13.Text;
a13:=Edit14.Text;
a14:=Edit15.Text;
a15:=Edit16.Text;
 
L:=TStringList.Create;
L.LoadFromFile('chatlog.txt');
s:=AnsiLowerCase(L.Text);
If Pos(a0, s) > 0
then begin
keybd_event(VK_F6, 0, 0, 0);
keybd_event(VK_F6, 0, KEYEVENTF_KEYUP, 0);
edit17.SelectAll;
edit17.CopyToClipboard;
keybd_event(VK_LCONTROL, 0, 0, 0);
keybd_event(Ord('V'), 0, 0, 0);
keybd_event(Ord('V'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_RETURN, 0, 0, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
Delete(s,Pos(a0,S), Length(a0));
L.Text:=S;
L.SaveToFile('chatlog.txt');
 
If Pos(a1, s) > 0
then begin
keybd_event(VK_F6, 0, 0, 0);
keybd_event(VK_F6, 0, KEYEVENTF_KEYUP, 0);
edit18.SelectAll;
edit18.CopyToClipboard;
keybd_event(VK_LCONTROL, 0, 0, 0);
keybd_event(Ord('V'), 0, 0, 0);
keybd_event(Ord('V'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_RETURN, 0, 0, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
Delete(s,Pos(a1,S), Length(a1));
L.Text:=S;
L.SaveToFile('chatlog.txt');
 
If Pos(a2, s) > 0
then begin
keybd_event(VK_F6, 0, 0, 0);
keybd_event(VK_F6, 0, KEYEVENTF_KEYUP, 0);
edit19.SelectAll;
edit19.CopyToClipboard;
keybd_event(VK_LCONTROL, 0, 0, 0);
keybd_event(Ord('V'), 0, 0, 0);
keybd_event(Ord('V'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_RETURN, 0, 0, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
Delete(s,Pos(a2,S), Length(a2));
L.Text:=S;
L.SaveToFile('chatlog.txt');
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.03.2017, 17:57
Ответы с готовыми решениями:

не могу разобраться
Program Example; {$APPTYPE CONSOLE} uses SysUtils, Ruskey in...

Не могу разобраться с ListBox
Здравствуйте, я не могу разобраться со списками ListBox Я делаю небольшую...

Не могу разобраться с циклом
Задача нахождения минимума функции методом наискорейшего спуска из 2х...

Не могу разобраться со скрытием.
Я пишу прогу на 4 формах. Что и куда мне нужно прописать, чтоб она не была...

Не могу разобраться с TTimer!
Мужики, я создал игру лабиринт ,карты тоже сделал, вот только теперь никак не...

4
YuryK
1031 / 848 / 337
Регистрация: 08.12.2016
Сообщений: 3,283
28.03.2017, 23:57 2
зачем Для 15 пар Edit-ов повторять 15 раз один и тот же код?
Цитата Сообщение от KAPATEJlb Посмотреть сообщение
Суть в том,что при первых действиях прописанных в коде ,она работает,а в дальнейшем нет. Также если я выполнил первые строчки кода,то только потом оно среагирует среагирует на след.слово в в след editе..
важно где (в обработчике какого события, этот код выполняется, но у вас об этом ни слова, ни заголовка метода, откуда вырван это *****код
0
KAPATEJlb
2 / 2 / 0
Регистрация: 05.02.2017
Сообщений: 148
29.03.2017, 09:34  [ТС] 3
Цитата Сообщение от YuryK Посмотреть сообщение
зачем Для 15 пар Edit-ов повторять 15 раз один и тот же код?
в каждый из edito'v забивается слово,программа должна найти это слово в текстовом файле,сделать определенное действие и удалить это слово из текстового файла,дабы не было повторов действия ,т.к слово может повториться (файл дополняется )

Цитата Сообщение от YuryK Посмотреть сообщение
важно где (в обработчике какого события, этот код выполняется, но у вас об этом ни слова, ни заголовка метода, откуда вырван это *****код
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
procedure TForm1.Button1Click(Sender: TObject);
begin
timer1.Enabled:=true;
end;
 
procedure TForm1.Timer1Timer(Sender: TObject);
 
var
L:TStringList;
s:String;
DelWord,a1,a2,a3,a4,a5,a6,a7,a08,a09,a10,a11,a12,a13,a14,a15:String;
begin
DelWord:=Edit2.Text;
a1:=Edit3.Text;
a2:=Edit4.Text;
a3:=Edit5.Text;
a4:=Edit6.Text;
a5:=Edit7.Text;
a6:=Edit8.Text;
a7:=Edit9.Text;
a08:=Edit1.Text;
a09:=Edit10.Text;
a10:=Edit11.Text;
a11:=Edit12.Text;
a12:=Edit13.Text;
a13:=Edit14.Text;
a14:=Edit15.Text;
a15:=Edit16.Text;
 
L:=TStringList.Create;
L.LoadFromFile('chatlog.txt');
s:=AnsiLowerCase(L.Text);
If Pos(delWord, s) > 0
then begin
keybd_event(VK_F6, 0, 0, 0);
keybd_event(VK_F6, 0, KEYEVENTF_KEYUP, 0);
edit17.SelectAll;
edit17.CopyToClipboard;
keybd_event(VK_LCONTROL, 0, 0, 0);
keybd_event(Ord('V'), 0, 0, 0);
keybd_event(Ord('V'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_RETURN, 0, 0, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
Delete(s,Pos(delWord,S), Length(delWord));
L.Text:=S;
L.SaveToFile('chatlog.txt');
 
If Pos(a1, s) > 0
then begin
keybd_event(VK_F6, 0, 0, 0);
keybd_event(VK_F6, 0, KEYEVENTF_KEYUP, 0);
edit18.SelectAll;
edit18.CopyToClipboard;
keybd_event(VK_LCONTROL, 0, 0, 0);
keybd_event(Ord('V'), 0, 0, 0);
keybd_event(Ord('V'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_RETURN, 0, 0, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
Delete(s,Pos(a1,S), Length(a1));
L.Text:=S;
L.SaveToFile('chatlog.txt');
 
If Pos(a2, s) > 0
then begin
keybd_event(VK_F6, 0, 0, 0);
keybd_event(VK_F6, 0, KEYEVENTF_KEYUP, 0);
edit19.SelectAll;
edit19.CopyToClipboard;
keybd_event(VK_LCONTROL, 0, 0, 0);
keybd_event(Ord('V'), 0, 0, 0);
keybd_event(Ord('V'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_RETURN, 0, 0, 0);
keybd_event(VK_RETURN, 0, KEYEVENTF_KEYUP, 0);
Delete(s,Pos(a2,S), Length(a2));
L.Text:=S;
L.SaveToFile('chatlog.txt'); и т.д еще много таких,только a меняется
0
YuryK
1031 / 848 / 337
Регистрация: 08.12.2016
Сообщений: 3,283
29.03.2017, 10:03 4
Цитата Сообщение от KAPATEJlb Посмотреть сообщение
(файл дополняется )
файл дополняется извне, независимо от ваших действий?
в том процессе действительно ничего не испортится после того, как вы, исправив его, перезапишите?

По задумке похоже на бота, который отвечает в соответствии с тем, что появилось в chatlog.txt, но реализация какая-то странная.

Допустим, при старте программы, в логе найдено все 15 фраз, тогда ваш бот выпалит сразу 15 ответов, причем не в порядке поступления фраз от оппонента, а в порядке расположения фраз в Еdit-ах.

Непонятно также зачем сохранять chatlog.txt после "отработки"?

С 32-мя эдитами и 16 кусками одного и того же все равно не понятно. Почему не Грид с произвольным количеством строк? Почему алгоритм действует исходя не от новой стоки в чате и обработки в порядке поступления сообщений?
0
KAPATEJlb
2 / 2 / 0
Регистрация: 05.02.2017
Сообщений: 148
29.03.2017, 17:50  [ТС] 5
Цитата Сообщение от YuryK Посмотреть сообщение
По задумке похоже на бота, который отвечает в соответствии с тем, что появилось в chatlog.txt
Да ,действительно.Это бот ,который реагирует на появившееся в chatlogge.
Цитата Сообщение от YuryK Посмотреть сообщение
Допустим, при старте программы, в логе найдено все 15 фраз
- при старте программы лог очищен

Цитата Сообщение от YuryK Посмотреть сообщение
а в порядке расположения фраз в Еdit-ах.
разве? по идеи я хочу,что бы фразы поступали - выполнялось действие - и удалялось,дабы снова повтора не было ,либо ожидание повторной команды

Цитата Сообщение от YuryK Посмотреть сообщение
Непонятно также зачем сохранять chatlog.txt после "отработки"?
Дело в том,что действие продолжит выполнятся,ну я подумал и решил,что можно удалить из файла фразу,дабы повтора действий не было.

Цитата Сообщение от YuryK Посмотреть сообщение
С 32-мя эдитами и 16 кусками одного и того же все равно не понятно
просто надо было разные фразы... 16 кусков - это типа реагирует на эти 16 фраз в чатлоге,а другие 16 едитов ,это текст,который копирует,и вставляет в чат приложения.
Цитата Сообщение от YuryK Посмотреть сообщение
Почему не Грид с произвольным количеством строк?
не очень понимаю((

Вообще-м вопрос: как сделать,дабы реагировало на каждую фразу? конечно можно каждое действие с описания новых переменных начать,но...?
0
29.03.2017, 17:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2017, 17:50

Не могу разобраться с PopupMenu
Всем доброго времени суток! Столкнулся с проблемой которую в одиночку мне не...

Не могу разобраться со счётом
Здравствуйте. Друг обратился с такой просьбой: "Не работает счёт в игре....

Компонент tTreeView не могу разобраться
Мне нужно чтобы при нажитии на один из пунктов дерева становилась видимой...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru