Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Параметры для собранного exe

Страниц (1): [1]
 

1. resident - 31 Августа, 2023 - 14:40:41 - перейти к сообщению
Как создать файл с параметрами?
В оригинале идёт как
#include "settings.txt";
auth_type="mgl"; //способ авторизации: mgl или email
check_tasks=1; // проверять задания
check_mag=1; // проверять магазин

но в собранный exe файл сразу скомпилировался.
Допустим читать файл построчно и разбирать что там написано, но как потом присвоить переменным значения? Например получу key="check_mag" val="1" и сделать что-то типа eval(key+"="+val);
2. Zireael - 31 Августа, 2023 - 18:40:19 - перейти к сообщению
Обычно используются файлы ini.
Запись:
CODE:
external (INT, "WriteINI", "WritePrivateProfileStringA", "kernel32.dll");

string Path = pathfolder()+"settings.ini";

string auth_type = "mgl";
int check_tasks = 0;
int check_mag = 1;

WriteINI("Settings", "auth_type", auth_type, Path);
WriteINI("Settings", "check_tasks", format(check_tasks), Path);
WriteINI("Settings", "check_mag", format(check_mag), Path);

start(Path);

Чтение:
CODE:
external (INT, "ReadINI", "GetPrivateProfileStringA", "kernel32.dll");

string Path = pathfolder()+"settings.ini";
char arr[256];

ReadINI("Settings", "auth_type", 0, address(#arr[0]), sizearray(arr), Path);
string auth_type = format(#arr[0]);

ReadINI("Settings", "check_tasks", 0, address(#arr[0]), sizearray(arr), Path);
int check_tasks = formatsn(format(#arr[0]));

ReadINI("Settings", "check_mag", 0, address(#arr[0]), sizearray(arr), Path);
int check_mag = formatsn(format(#arr[0]));

messagebox(auth_type);
messagebox(check_tasks);
messagebox(auth_type);
3. resident - 01 Сентября, 2023 - 06:18:21 - перейти к сообщению
Смысл тягать библиотеку, ничего она не даёт, проще регуляркой пройти и потом с условиями так же назначить значения переменным.
parserjson вот создаёт переменную из строки с нужными объектами, но формат не особо человекочитаем. Вот из ini сделать json и его распарсить вроде норм получается.
4. resident - 04 Сентября, 2023 - 16:30:26 - перейти к сообщению
CODE:
string resp;
string P;
string json;

if(fopen(path+"\settings.txt", "r")!=0) {
while(freadline(resp)) {
regexreplace(1, #P, resp, "([a-z_]+)+=(.+);.*","^"$1^":^"$2^"");
if(size(json)>0) json=json+",";
json=json+P;
}
fclose();
} else {
messagebox("Файл settings.txt не найден");
}
json="{"+json+"}";
parserjson(settings,json);
messagebox(settings.auth_type);


параметры без кавычек
auth_type=email; //способ авторизации: mgl или email
check_tasks=1; // проверять задания
check_mag=1; // проверять магазин

Powered by ExBB FM 1.0 Final