firew0rker 0 24 февраля, 2021 Опубликовано 24 февраля, 2021 · Жалоба Пожалуйста подскажите библиотеку, занимающую минимум памяти, на которой можно сделать и парсер текстового конфигурационного файла, и проверку валидности при настройке этой конфигурации построчно через SMS. В настройках будут не только строки и числа, но и URL, IP адреса, сотовые номера. В итоге должна быть возможность залить конфигурацию одним файлом, либо настроить через SMS. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 33 24 февраля, 2021 Опубликовано 24 февраля, 2021 (изменено) · Жалоба 1 час назад, firew0rker сказал: парсер текстового конфигурационного файла Думаю, что парсер подобного: [IPADDR] = 172.100.16.12 [NETMASK] = 255.255.255.0 и т.п. сможет написать сам даже тот, кто знаком с функциями strcmp, atoi... И прослушал пол-года курс по программированию на Си... Изменено 24 февраля, 2021 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harvester 0 24 февраля, 2021 Опубликовано 24 февраля, 2021 · Жалоба https://www.compuphase.com/minini.htm Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 182 24 февраля, 2021 Опубликовано 24 февраля, 2021 · Жалоба 7 часов назад, firew0rker сказал: Пожалуйста подскажите библиотеку, занимающую минимум памяти, на которой можно сделать и парсер текстового конфигурационного файла GetPrivateProfileString(): https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-getprivateprofilestring WritePrivateProfileString(): https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-writeprivateprofilestringa и иже с ними из того же API по работе с локальными .ini-файлами. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firew0rker 0 24 февраля, 2021 Опубликовано 24 февраля, 2021 · Жалоба Harvester, благодарю. Для конфигов библиотека minIni почти подходит. Функция ini_browse принимает имя файла, но должна быть возможность скормить ей содержимое SMS вместо файла. А для проверки валидности URL, IP адресов, сотовых номеров что посоветуете? jcxz, на GSM модуле нет винды. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harvester 0 24 февраля, 2021 Опубликовано 24 февраля, 2021 · Жалоба 1 hour ago, firew0rker said: А для проверки валидности URL, IP адресов, сотовых номеров что посоветуете? Я бы свой валидатор написал. Если хотите по-взрослому, то любую реализацию RegEx, например (не пользовался, просто гугл нашел) https://github.com/kokke/tiny-regex-c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
firew0rker 0 26 февраля, 2021 Опубликовано 26 февраля, 2021 · Жалоба tiny-regex-c нравится размер, вот описание поддерживаемых выражений: Spoiler * '.' Dot, matches any character * '^' Start anchor, matches beginning of string * '$' End anchor, matches end of string * '*' Asterisk, match zero or more (greedy) * '+' Plus, match one or more (greedy) * '?' Question, match zero or one (non-greedy) * '[abc]' Character class, match if one of {'a', 'b', 'c'} * '[^abc]' Inverted class, match if NOT one of {'a', 'b', 'c'} -- NOTE: feature is currently broken! * '[a-zA-Z]' Character ranges, the character set of the ranges { a-z | A-Z } * '\s' Whitespace, \t \f \r \n \v and spaces * '\S' Non-whitespace * '\w' Alphanumeric, [a-zA-Z0-9_] * '\W' Non-alphanumeric * '\d' Digits, [0-9] * '\D' Non-digits чего-то не хватает... Количества {повторов} Без них так: Spoiler $ ./test_print2 "^[\+\d]\d+$" +79538012345 type: BEGIN type: CHAR_CLASS [\+\d] type: DIGIT type: PLUS type: END pattern '^[\+\d]\d+$' matched '+79538012345', matched 12 chars. $ ./test_print2 "^[\+\d]\d+$" +7953 type: BEGIN type: CHAR_CLASS [\+\d] type: DIGIT type: PLUS type: END pattern '^[\+\d]\d+$' matched '+7953', matched 5 chars. Короткий телефон - тоже телефон. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Harvester 0 28 февраля, 2021 Опубликовано 28 февраля, 2021 · Жалоба On 2/26/2021 at 6:25 PM, firew0rker said: чего-то не хватает... Количества {повторов} Ну так добавьте! :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ae_ 2 1 марта, 2021 Опубликовано 1 марта, 2021 · Жалоба On 2/26/2021 at 11:25 PM, firew0rker said: чего-то не хватает... Количества {повторов} Для выражений с заранее известным количеством повторов: Ровно три цифры \d{3} = \d\d\d(?=\D) Три и более цифр \d{3,} = \d\d\d+ Не более трёх цифр \d{,3} = \d?\d?\d?(?=\D) От трёх до пяти цифр \d{3,5} = \d\d\d\d?\d?(?=\D) Не подходит для случая, если {m,n} - переменные, которые вычисляются в runtime. (поддерживается ли такое вообще?) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться