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

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

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

> Описание: Интерпретация строки в соответствии с форматом format.
Kibor
Отправлено: 04 Сентября, 2020 - 21:01:56
Post Id



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


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




Несколько обновлений:

1) Функция sscanf. Назначение - считывание информации из строки и ее разбор в соответствие с параметрами.

Описание ее можно найти в интернете. По логике C++

CODE:
sscanf ("22 : 05 : 17", "%d%s%d%s%d", #h, #r[0], #m, #r[1], #s);

Первый параметр: Строка которую будем разбирать.
Второй: Строка формат, в соответствие с которым будем разбирать первую строку.

Далее идут указатели на переменные, в которые будут записываться получаемые данные.
Количество данных параметров может быть от 1 до 20.
В виде указателей принимает
int, double, string, char

Возвращает реально считанное количество параметров.

Внимание:
Функция оперирует с таким количеством байт, ожидаемое значение которое указано в флаге формат.
То есть, если в флаге указано \x, это означает что в переменную должно быть записано 4 байта. И если указатель будет на char в 1 байт, это приведет к краху программы или ее неверной работе в дальнейшем.


Примеры:

CODE:
int p1, p2;

string input_s = "Возраст: 30 лет, рост:178 см";
sscanf(input_s,"Возраст: %d лет, рост:%d см", #p1, #p2);

messagebox (p1);
messagebox (p2);



CODE:
int h, m, s;
string r[2];
sscanf ("22 : 05 : 17", "%d%s%d%s%d", #h, #r[0], #m, #r[1], #s);
messagebox (h);
messagebox (r[0]);
messagebox (m);
messagebox (r[1]);
messagebox (s);



CODE:
string t;
double i;
sscanf ("Дробь 5.25", "%s%lf", #t, #i);
messagebox (t);
messagebox (i);



CODE:
string e;
int u;
sscanf ("Число_16_10 0x41", "%s%x", #e, #u);
messagebox (e);
messagebox (u);



CODE:
string s16="4"+"2";// \x42 = B
messagebox (s16);
string f;
sscanf (s16, "%x", #f);
messagebox (f);




===========================================================


Добавлена возможность указывать символы в строке и числа в 16 ричной системе:

CODE:
int a=0x4135656af;
messagebox (a+0x41);



Строка:
Спец символом указывающим что далее идет символ в 16 ричной системе является x
0x41 = число 65
^x41 = символ A
CODE:
string a="^xEF^xF0^xE8^xE2^xE5^xF2";
messagebox (a);
 
 Top
ivantu
Отправлено: 04 Сентября, 2020 - 21:26:24
Post Id



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


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




Это что то типа: ?

regexsearch- Ищет в тексте участок по шаблону регулярного выражения
regexreplace- Ищет в тексте участок по шаблону регулярного выражения и заменяет его на указанный текст
 
 Top
Kibor
Отправлено: 04 Сентября, 2020 - 21:31:08
Post Id



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


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




Нет. Это что то типа sscanf. Вернее она и есть.
В интернете много описания.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« О программе Кибор »


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




Powered by