Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (4): [1] 2 3 4 »   

> Описание: Добавить данные из блокнота в комбобокс
Martin
Отправлено: 17 Апреля, 2023 - 13:55:33
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




Помогите пожалуйста настроить диалоговое окно, нужно чтобы брались переменные из одного из 6 блокнотов которые находятся в папке с программой и добавлялись в комбобокс. Далее можно было выбрать значение переменной из комбо бокса и нажать кнопку. Далее значение переменной будет обрабатываться в коде.

Пример данных из блокнота
Примеры данных из блокнотов (Отобразить)

(Добавление)
Код с диалоговым окном (Отобразить)
 
 Top
Kibor
Отправлено: 17 Апреля, 2023 - 14:46:05
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8098
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define WS_BORDER 0x00800000
#define BS_MULTILINE 0x00002000
#define BS_AUTOCHECKBOX 0x00000003
#define BS_AUTORADIOBUTTON 0x00000009
#define BM_SETCHECK 0x00F1
#define BST_UNCHECKED 0x0000
#define BST_CHECKED 0x0001
#define CBS_DROPDOWNLIST 0x0003
#define CB_ADDSTRING 0x0143
#define CB_GETCURSEL 0x0147
#define CB_SETCURSEL 0x014E
#define TRUE 1
#define WM_SETFONT 0x0030
#define RUSSIAN_CHARSET 204
#define CB_RESETCONTENT 331

external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll");
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll");
external(INT, "GetWindowRect", "GetWindowRect", "User32.dll");
external(INT, "DeleteObject", "DeleteObject", "Gdi32.dll");
external(INT, "DeleteFile", "DeleteFileA", "kernel32.dll");
external(INT, "GetPrivateProfileString", "GetPrivateProfileStringA", "kernel32.dll");
external(INT, "WritePrivateProfileString", "WritePrivateProfileStringA", "kernel32.dll");

int h_font;
string rn = formatic(13)+formatic(10);
int dialogPosX_0 = 651, dialogPosY_0 = 287;
string path_settings_0 = tempfolder() + "config_file_0.ini";
int button0[1];
int flag_button0[1] = { 0 };

int autocheck0[6], flag_autocheck0 = 0;

int combobox0[1];
int flag_combobox0[1] = { 0 };
string text_combobox0[1][1];
int count_rows_combobox0[1] = { 0 };


createdialog(0);
showdialog(0, "Диалог0", dialogPosX_0, dialogPosY_0, 311, 147, 4, 1);

loop()
{
// тут нужный код
sleep(10);
}
end_0:;

function Add_Combo(int i)
{
//Прочитать файл построчно с именем для выбранной галки
//"NAME"+format(i)+".txt";
//i это номер галки

sendmessage(CB_RESETCONTENT, 0, 0, formatiw(combobox0[0]));

char cl[1000];
strcpy(#cl[0], "Файл "+format(i)+" строка с файла 1");//первая строка файла
sendmessage(CB_ADDSTRING, 0, address(#cl[0]), formatiw(combobox0[0]));
strcpy(#cl[0], "Файл "+format(i)+" строка с файла 2");//вторая строка файла
sendmessage(CB_ADDSTRING, 0, address(#cl[0]), formatiw(combobox0[0]));
strcpy(#cl[0], "Файл "+format(i)+" строка с файла 3");//третья строка файла
sendmessage(CB_ADDSTRING, 0, address(#cl[0]), formatiw(combobox0[0]));

sendmessage(CB_SETCURSEL, 0, 0, formatiw(combobox0[0])); // выбрать 1 пункт
}




function getmessage(0, WM_CREATE)
{
int i;
int j;
char c_text_combobox[999];
load_config_0(); // функция для загрузки настроек

h_font = CreateFont(-12, 0, 0, 0, 400, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Arial");
button0[0] = CreateWindow(0, "BUTTON", "Run", WS_VISIBLE | WS_CHILD, 8, 88, 288, 20, gethwnd(0), 0, 0, 0);
autocheck0[0] = CreateWindow(0, "BUTTON", "Блокнот 1", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 8, 40, 100, 20, gethwnd(0), 0, 0, 0);
autocheck0[1] = CreateWindow(0, "BUTTON", "Блокнот 2", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 8, 64, 100, 20, gethwnd(0), 0, 0, 0);
autocheck0[2] = CreateWindow(0, "BUTTON", "Блокнот 3", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 112, 40, 100, 20, gethwnd(0), 0, 0, 0);
autocheck0[3] = CreateWindow(0, "BUTTON", "Блокнот 4", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 112, 64, 100, 20, gethwnd(0), 0, 0, 0);
autocheck0[4] = CreateWindow(0, "BUTTON", "Блокнот 5", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 216, 40, 80, 20, gethwnd(0), 0, 0, 0);
autocheck0[5] = CreateWindow(0, "BUTTON", "Блокнот 6", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 216, 64, 80, 20, gethwnd(0), 0, 0, 0);
combobox0[0] = CreateWindow(0, "COMBOBOX", "", WS_VISIBLE | WS_CHILD | WS_BORDER | CBS_DROPDOWNLIST, 8, 8, 288, 123, gethwnd(0), 0, 0, 0);
if(flag_autocheck0 > -1){sendmessage(BM_SETCHECK, BST_CHECKED, 0, formatiw(autocheck0[flag_autocheck0])); Add_Combo(flag_autocheck0);}


for(i=0; i<1; i++)
{
for(j=0; j<count_rows_combobox0[i]; j++)
{
strcpy(#c_text_combobox[0], text_combobox0[i][j]);
sendmessage(CB_ADDSTRING, 0, address(#c_text_combobox[0]), formatiw(combobox0[i]));
}
}
for(i=0; i<1; i++)sendmessage(CB_SETCURSEL, flag_combobox0[i], 0, formatiw(combobox0[i]));
for(i=0; i<1; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(button0[i]));
for(i=0; i<6; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(autocheck0[i]));
for(i=0; i<1; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(combobox0[i]));


}

function getmessage(0, WM_COMMAND)
{
int i;
for(i=0; i<1; i++) // обработка нажатий кнопок
{
if(message.lparam == button0[i])
{
if(flag_button0[i])flag_button0[i] = 0;
else flag_button0[i] = 1;
return;
}
}
for(i=0; i<6; i++) // обработка нажатий галок переключателей
{
if(message.lparam == autocheck0[i])
{
flag_autocheck0 = i;
Add_Combo(flag_autocheck0);
return;
}
}
for(i=0; i<1; i++) // обработка нажатий на список combobox
{
if(message.lparam == combobox0[i])
{
flag_combobox0[i] = sendmessage(CB_GETCURSEL, 0, 0, formatiw(combobox0[i]));
return;
}
}
}

function getmessage(0, WM_CLOSE)
{
save_config_0(); // вызов функции, котороая сохранит настройки в ini файл

DeleteObject(h_font);
goto global end_0; // переход в метке
// close(); // закрыть кибор
}

function save_config_0() // функция для сохранения настроек
{
int i, rect_window[4];
DeleteFile(path_settings_0);
GetWindowRect(gethwnd(0), address(#rect_window[0]));
WritePrivateProfileString("DialogPosition", "dialogPosX", format(rect_window[0]), path_settings_0);
WritePrivateProfileString("DialogPosition", "dialogPosY", format(rect_window[1]), path_settings_0);
for (i=0; i<sizearray(combobox0); i++)WritePrivateProfileString("Combobox", "combobox0_" + format(i), format(flag_combobox0[i]), path_settings_0);
WritePrivateProfileString("AutoCheck", "autocheck0", format(flag_autocheck0), path_settings_0);
}

function load_config_0() // функция для загрузки настроек
{
int i;
char text[999];
if(fopen(path_settings_0, "r"))fclose();
else return;

if(GetPrivateProfileString("DialogPosition", "dialogPosX", 0, address (#text[0]), sizearray(text), path_settings_0))dialogPosX_0 = formatsn(format(#text[0]));
if(GetPrivateProfileString("DialogPosition", "dialogPosY", 0, address (#text[0]), sizearray(text), path_settings_0))dialogPosY_0 = formatsn(format(#text[0]));
for (i=0; i<sizearray(combobox0); i++)
{
if(GetPrivateProfileString("Combobox", "combobox0_" + format(i), 0, address (#text[0]), sizearray(text), path_settings_0))flag_combobox0[i] = formatsn(format(#text[0]));
}
if(GetPrivateProfileString("AutoCheck", "autocheck0" , 0, address (#text[0]), sizearray(text), path_settings_0))
flag_autocheck0 = formatsn(format(#text[0]));
}
 
 Top
Martin
Отправлено: 17 Апреля, 2023 - 15:16:32
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




 Kibor пишет:
function Add_Combo(int i)
{
//Прочитать файл построчно с именем для выбранной галки
//"NAME"+format(i)+".txt";
//i это номер галки

sendmessage(CB_RESETCONTENT, 0, 0, formatiw(combobox0[0]));

char cl[1000];
strcpy(#cl[0], "Файл "+format(i)+" строка с файла 1");//первая строка файла
sendmessage(CB_ADDSTRING, 0, address(#cl[0]), formatiw(combobox0[0]));
strcpy(#cl[0], "Файл "+format(i)+" строка с файла 2");//вторая строка файла
sendmessage(CB_ADDSTRING, 0, address(#cl[0]), formatiw(combobox0[0]));
strcpy(#cl[0], "Файл "+format(i)+" строка с файла 3");//третья строка файла
sendmessage(CB_ADDSTRING, 0, address(#cl[0]), formatiw(combobox0[0]));

sendmessage(CB_SETCURSEL, 0, 0, formatiw(combobox0[0])); // выбрать 1 пункт
}


Не могу сообразить как тут данные заменить на данные из блокнота? И по запуску кнопки можно для примера вывод выбранного сообщения сделать?

(Отредактировано автором: 17 Апреля, 2023 - 15:16:44)

 
 Top
Martin
Отправлено: 17 Апреля, 2023 - 20:43:36
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




возможно не правильно выразился, что мне нужно

Нажмите для увеличения

по фото может понятнее будет.

Добавить информацию из блокнотов во всплывающий список.
string path=pathfolder()+"filetxt\1.txt";
string path1=pathfolder()+"filetxt\2.txt";
string path2=pathfolder()+"filetxt\3.txt";
string path3=pathfolder()+"filetxt\4.txt";
string path4=pathfolder()+"filetxt\5.txt";
string path5=pathfolder()+"filetxt\6.txt";
 
 Top
Zireael
Отправлено: 17 Апреля, 2023 - 21:34:26
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4398
Дата рег-ции: Нояб. 2017  
Репутация: 580




Если не срочно, то через 10 дней буду дома напишу как сделать.
 
 Top
Martin
Отправлено: 17 Апреля, 2023 - 22:30:45
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




Zireael , Да, конечно, если сам так и не соображу как это сделать, буду ждать помощи.
 
 Top
Kibor
Отправлено: 18 Апреля, 2023 - 06:20:47
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8098
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




 Martin пишет:
Не могу сообразить как тут данные заменить на данные из блокнота? И по запуску кнопки можно для примера вывод выбранного сообщения сделать?


/*
Файлы в
Kibor\filetxt\0.txt
Kibor\filetxt\1.txt
...
*/


#define WS_VISIBLE 0x10000000
#define WS_CHILD 0x40000000
#define WS_BORDER 0x00800000
#define BS_MULTILINE 0x00002000
#define BS_AUTOCHECKBOX 0x00000003
#define BS_AUTORADIOBUTTON 0x00000009
#define BM_SETCHECK 0x00F1
#define BST_UNCHECKED 0x0000
#define BST_CHECKED 0x0001
#define CBS_DROPDOWNLIST 0x0003
#define CB_ADDSTRING 0x0143
#define CB_GETCURSEL 0x0147
#define CB_SETCURSEL 0x014E
#define TRUE 1
#define WM_SETFONT 0x0030
#define RUSSIAN_CHARSET 204
#define CB_RESETCONTENT 331
#define CB_GETLBTEXT 328


external(INT, "CreateWindow", "CreateWindowExA", "User32.dll");
external(INT, "GetWindowText", "GetWindowTextA", "User32.dll");
external(INT, "SetWindowText", "SetWindowTextA", "User32.dll");
external(INT, "CreateFont", "CreateFontA", "Gdi32.dll");
external(INT, "GetWindowRect", "GetWindowRect", "User32.dll");
external(INT, "DeleteObject", "DeleteObject", "Gdi32.dll");
external(INT, "DeleteFile", "DeleteFileA", "kernel32.dll");
external(INT, "GetPrivateProfileString", "GetPrivateProfileStringA", "kernel32.dll");
external(INT, "WritePrivateProfileString", "WritePrivateProfileStringA", "kernel32.dll");

int h_font;
string rn = formatic(13)+formatic(10);
int dialogPosX_0 = 651, dialogPosY_0 = 287;
string path_settings_0 = tempfolder() + "config_file_0.ini";
int button0[1];
int flag_button0[1] = { 0 };

int autocheck0[6], flag_autocheck0 = 0;

int combobox0[1];
int flag_combobox0[1] = { 0 };
string text_combobox0[1][1];
int count_rows_combobox0[1] = { 0 };


createdialog(0);
showdialog(0, "Диалог0", dialogPosX_0, dialogPosY_0, 311, 147, 4, 1);

loop()
{
// тут нужный код
sleep(10);
}
end_0:;

function Add_Combo(int i)
{
string line[500];
int k=0;
sendmessage(CB_RESETCONTENT, 0, 0, formatiw(combobox0[0]));
char cl[1000];
if (fopen (pathfolder()+"filetxt\"+format(i)+".txt", "r")!=0)
{
k=freadlineall(#line[0], 500);
fclose();
for (int n=0; n<k; n++)
{
//strcpy(#cl[0], line[n]);//Для ANSI
strcpy(#cl[0], utf8toansi (line[n]));//Для UTF-8
sendmessage(CB_ADDSTRING, 0, address(#cl[0]), formatiw(combobox0[0]));
}
sendmessage(CB_SETCURSEL, 0, 0, formatiw(combobox0[0])); // выбрать 1 пункт
}
}

function Run()
{
char cl[1000];
sendmessage(CB_GETLBTEXT, sendmessage(CB_GETCURSEL, 0, 0, formatiw(combobox0[0])), address(#cl[0]), formatiw(combobox0[0]));
string STR=format(#cl[0]);
messagebox (STR);
}




function getmessage(0, WM_CREATE)
{
int i;
int j;
char c_text_combobox[999];
load_config_0(); // функция для загрузки настроек

h_font = CreateFont(-12, 0, 0, 0, 400, 0, 0, 0, RUSSIAN_CHARSET, 0, 0, 0, 0, "Arial");
button0[0] = CreateWindow(0, "BUTTON", "Run", WS_VISIBLE | WS_CHILD, 8, 88, 288, 20, gethwnd(0), 0, 0, 0);
autocheck0[0] = CreateWindow(0, "BUTTON", "Блокнот 1", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 8, 40, 100, 20, gethwnd(0), 0, 0, 0);
autocheck0[1] = CreateWindow(0, "BUTTON", "Блокнот 2", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 8, 64, 100, 20, gethwnd(0), 0, 0, 0);
autocheck0[2] = CreateWindow(0, "BUTTON", "Блокнот 3", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 112, 40, 100, 20, gethwnd(0), 0, 0, 0);
autocheck0[3] = CreateWindow(0, "BUTTON", "Блокнот 4", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 112, 64, 100, 20, gethwnd(0), 0, 0, 0);
autocheck0[4] = CreateWindow(0, "BUTTON", "Блокнот 5", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 216, 40, 80, 20, gethwnd(0), 0, 0, 0);
autocheck0[5] = CreateWindow(0, "BUTTON", "Блокнот 6", BS_AUTORADIOBUTTON | WS_VISIBLE | WS_CHILD, 216, 64, 80, 20, gethwnd(0), 0, 0, 0);
combobox0[0] = CreateWindow(0, "COMBOBOX", "", WS_VISIBLE | WS_CHILD | WS_BORDER | CBS_DROPDOWNLIST, 8, 8, 288, 123, gethwnd(0), 0, 0, 0);
if(flag_autocheck0 > -1){sendmessage(BM_SETCHECK, BST_CHECKED, 0, formatiw(autocheck0[flag_autocheck0])); Add_Combo(flag_autocheck0);}


for(i=0; i<1; i++)
{
for(j=0; j<count_rows_combobox0[i]; j++)
{
strcpy(#c_text_combobox[0], text_combobox0[i][j]);
sendmessage(CB_ADDSTRING, 0, address(#c_text_combobox[0]), formatiw(combobox0[i]));
}
}
for(i=0; i<1; i++)sendmessage(CB_SETCURSEL, flag_combobox0[i], 0, formatiw(combobox0[i]));
for(i=0; i<1; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(button0[i]));
for(i=0; i<6; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(autocheck0[i]));
for(i=0; i<1; i++)sendmessage(WM_SETFONT, h_font, TRUE, formatiw(combobox0[i]));


}

function getmessage(0, WM_COMMAND)
{
int i;
for(i=0; i<1; i++) // обработка нажатий кнопок
{
if(message.lparam == button0[i])
{
if(flag_button0[i])flag_button0[i] = 0;
else flag_button0[i] = 1;
Run();
return;
}
}
for(i=0; i<6; i++) // обработка нажатий галок переключателей
{
if(message.lparam == autocheck0[i])
{
flag_autocheck0 = i;
Add_Combo(flag_autocheck0);
return;
}
}
for(i=0; i<1; i++) // обработка нажатий на список combobox
{
if(message.lparam == combobox0[i])
{
flag_combobox0[i] = sendmessage(CB_GETCURSEL, 0, 0, formatiw(combobox0[i]));
return;
}
}
}

function getmessage(0, WM_CLOSE)
{
save_config_0(); // вызов функции, котороая сохранит настройки в ini файл

DeleteObject(h_font);
goto global end_0; // переход в метке
// close(); // закрыть кибор
}

function save_config_0() // функция для сохранения настроек
{
int i, rect_window[4];
DeleteFile(path_settings_0);
GetWindowRect(gethwnd(0), address(#rect_window[0]));
WritePrivateProfileString("DialogPosition", "dialogPosX", format(rect_window[0]), path_settings_0);
WritePrivateProfileString("DialogPosition", "dialogPosY", format(rect_window[1]), path_settings_0);
for (i=0; i<sizearray(combobox0); i++)WritePrivateProfileString("Combobox", "combobox0_" + format(i), format(flag_combobox0[i]), path_settings_0);
WritePrivateProfileString("AutoCheck", "autocheck0", format(flag_autocheck0), path_settings_0);
}

function load_config_0() // функция для загрузки настроек
{
int i;
char text[999];
if(fopen(path_settings_0, "r"))fclose();
else return;

if(GetPrivateProfileString("DialogPosition", "dialogPosX", 0, address (#text[0]), sizearray(text), path_settings_0))dialogPosX_0 = formatsn(format(#text[0]));
if(GetPrivateProfileString("DialogPosition", "dialogPosY", 0, address (#text[0]), sizearray(text), path_settings_0))dialogPosY_0 = formatsn(format(#text[0]));
for (i=0; i<sizearray(combobox0); i++)
{
if(GetPrivateProfileString("Combobox", "combobox0_" + format(i), 0, address (#text[0]), sizearray(text), path_settings_0))flag_combobox0[i] = formatsn(format(#text[0]));
}
if(GetPrivateProfileString("AutoCheck", "autocheck0" , 0, address (#text[0]), sizearray(text), path_settings_0))
flag_autocheck0 = formatsn(format(#text[0]));
}
 
 Top
Martin
Отправлено: 18 Апреля, 2023 - 19:15:04
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




Kibor , Спасибо! А как сделать чтобы выводился русский текст а не крякозябры?
 
 Top
Kibor
Отправлено: 18 Апреля, 2023 - 19:36:41
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8098
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Где выводятся кракозябры?
какой формат сохранения txt?
Надо файлы сохранять в ANSI
 
 Top
Martin
Отправлено: 18 Апреля, 2023 - 19:55:45
Post Id



Пользователь
Мастер


Покинул форум
Сообщений всего: 121
Дата рег-ции: Июнь 2022  
Репутация: 1




 Kibor пишет:
Надо файлы сохранять в ANSI
Понял, так всё работает, думал может как то по другому можно.
 
 Top
Страниц (4): [1] 2 3 4 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by