Форум программистов, компьютерный форум, киберфорум
Наши страницы

Delphi

Войти
Регистрация
Восстановить пароль
 
KAPATEJlb
2 / 2 / 0
Регистрация: 05.02.2017
Сообщений: 143
#1

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

28.03.2017, 17:57. Просмотров 257. Ответов 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
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Не могу разобраться (Delphi):

не могу разобраться - Delphi
Program Example; {$APPTYPE CONSOLE} uses SysUtils, Ruskey in 'D:\Ruskey.pas'; // подключаем модуль с функцией Rus Var...

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

Не могу разобраться с циклом - Delphi
Задача нахождения минимума функции методом наискорейшего спуска из 2х переменных вида: z=ax12+bx22+cx1+dx2. Никак не могу разобраться с...

Не могу разобраться со счётом - Delphi
Здравствуйте. Друг обратился с такой просьбой: "Не работает счёт в игре. Помоги, тыж программист.". В чём суть я и сам, к сожалению...

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

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

4
YuryK
1029 / 846 / 315
Регистрация: 08.12.2016
Сообщений: 3,283
28.03.2017, 23:57 #2
зачем Для 15 пар Edit-ов повторять 15 раз один и тот же код?
Цитата Сообщение от KAPATEJlb Посмотреть сообщение
Суть в том,что при первых действиях прописанных в коде ,она работает,а в дальнейшем нет. Также если я выполнил первые строчки кода,то только потом оно среагирует среагирует на след.слово в в след editе..
важно где (в обработчике какого события, этот код выполняется, но у вас об этом ни слова, ни заголовка метода, откуда вырван это *****код
0
KAPATEJlb
2 / 2 / 0
Регистрация: 05.02.2017
Сообщений: 143
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
1029 / 846 / 315
Регистрация: 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
Сообщений: 143
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 - Delphi
Всем доброго времени суток! Столкнулся с проблемой которую в одиночку мне не решить, поэтому прошу помощи у знающих людей) Вообщем суть...

Не могу разобраться с программой на delphi - Delphi
Мне нужно составить программу вычисляющую формулу F(x)=3x^4-x^3 (вместо чисел могут стоять и другие значения, но степень положительная)...

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

Задали работу, не могу разобраться. Используется делфи 10, не могу разобраться, как это сделать - Delphi
В одномерном массиве, состоящем из n вещественных элементов, вычислить: минимальный элемент массива и сумму элементов массива,...


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

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

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