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

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

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

> Без описания
007wan
Отправлено: 02 Мая, 2019 - 14:25:19
Post Id



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


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




а как тут? просто везде позиции и размер разные и названия
код (Отобразить)
 
 Top
Zireael
Отправлено: 02 Мая, 2019 - 14:52:17
Post Id



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


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




 Цитата:
а как тут? просто везде позиции и размер разные и названия

CODE:
int pos[12]=
{10, 50, 320, 20,
20, 215, 270, 20,
99, 88, 77, 66}

string name[3]={"Один", "Два", "Три"}
for(int i=0; i<sizearray(pos)/4; i++)
messagebox(name[i]+" "+format(pos[i*4])+" "+format(pos[i*4+1])+" "+format(pos[i*4+2])+" "+format(pos[i*4+3]));

Не очень удобно из-за того что нельзя инициализировать двухмерный массив при объявлении.
 
 Top
007wan
Отправлено: 03 Мая, 2019 - 11:46:06
Post Id



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


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




Вот сократил это:
это (Отобразить)

на это (Отобразить)
С объявлением переменных*
 
 Top
Zireael
Отправлено: 03 Мая, 2019 - 12:01:12
Post Id



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


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




 Цитата:
if (format(#Load_Checkbox[a][0]) == "9" )
{
Load_Checkbox[a][0] = "1";
}

Если выполняется только 1 действие, то фигурные скобки можно не ставить.
CODE:
if (format(#Load_Checkbox[a][0]) == "9")Load_Checkbox[a][0] = "1";

Зачем Load_Checkbox объявлен char? Объявить int и не потребуется постоянная конвертация formatsn(format(#Load_Checkbox[a][0]) . И сравнивать можно без format(#Load_Checkbox[a][0]).
 
 Top
007wan
Отправлено: 19 Мая, 2019 - 13:35:59
Post Id



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


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




 Zireael пишет:
Зачем Load_Checkbox объявлен char? Объявить int и не потребуется постоянная конвертация formatsn(format(#Load_Checkbox[a][0]) . И сравнивать можно без format(#Load_Checkbox[a][0]).
Не могу понять. мозг просто кипит((
(Добавление)
Было (Отобразить)

(Добавление)
Стало (Отобразить)

Где-то ошибка. 100%
(Добавление)
А, я лучше сейчас новый диалог скину готовый и посмотрим где, что и как
(Добавление)
Проблема не в создании контролов через for, а в том, что ошибка где-то в загрузке или получении статуса контролов через for
 
 Top
Zireael
Отправлено: 19 Мая, 2019 - 13:53:29
Post Id



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


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




 Цитата:
ñ<sizearray(Object_Checkbox)

 Цитата:
messagebox(Load_Checkbox[c]) // пропущена ;

 Цитата:
что ошибка где-то в загрузке или получении статуса контролов

В GetPrivateProfileString надо передавать указатель на массив char, который примет результат, а Load_Checkbox[5]; это int. Поэтому получать результат в массив char, а потом его конвертировать в int.
 Цитата:
char buffer[255];
for (int c=0; c<sizearray(Object_Checkbox); c++)
{
GetPrivateProfileString ("Default", "Object_Combobox"+format(c), 0, address(#buffer[0]), 255, PathSaveSettings);
Load_Checkbox[c]=formatsn(format(#buffer[0]));
messagebox(Load_Checkbox[c]);
}
 
 Top
007wan
Отправлено: 19 Мая, 2019 - 14:31:09
Post Id



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


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




 Zireael пишет:
char buffer[255];
А буфер использовать один раз для всех галочек или тоже сделать массив буфера для 5 галочек?
 
 Top
Zireael
Отправлено: 19 Мая, 2019 - 14:33:02
Post Id



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


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




 Цитата:
А буфер использовать один раз для всех галочек или тоже сделать массив буфера для 5 галочек?

Один. Всё равно результат потом переписывается в Load_Checkbox.
 
 Top
007wan
Отправлено: 19 Мая, 2019 - 15:05:23
Post Id



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


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




Как сократить это?
Код (Отобразить)
Почему Max_length = 0 и получается в if , что если 0 меньше Size, почему я не могу просто удалить эту переменную?
 
 Top
Zireael
Отправлено: 19 Мая, 2019 - 15:15:59
Post Id



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


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




 Цитата:
Как сократить это?

тут нечего сокращать, разве что мелочи типа:
 Цитата:
if (Change == 1)
{
Text = "["+format(#Time[0])+"] - "+Text;
}

CODE:
if (Change)Text = "["+format(#Time[0])+"] - "+Text;

 Цитата:
почему я не могу просто удалить эту переменную?

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


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




Powered by