Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <string>
- #include <regex>
- #include <iostream>
- #include <dirent.h>
- #define FIND_DIR "." // здесь указываем каталог, в котором искать файлы
- int give_fnn_number(char s[])
- { // функция выделяет номер из имени файла
- auto m = std::__cxx11::cmatch{};
- std::__cxx11::string fn_prefix, fn_number, t;
- // сюда вручную вбить префикс вместо имя,
- // не разобрался как загнать его в параметры
- if (std::regex_match(s, m, std::__cxx11::regex{ R"(^(имя)(\d+)$)" }))
- {
- fn_prefix = m[1].str();
- fn_number = m[2].str();
- }
- else
- {
- return -1;
- }
- int fnn_number;
- fnn_number = std::stoi(fn_number);
- return fnn_number;
- }
- int main()
- {
- int detected_fn_number = -1; // максимальный обнаруженный номер файла
- /* Compiling for UNIX / POSIX */
- DIR *dir = opendir(FIND_DIR);
- if(dir)
- {
- struct dirent *ent;
- while((ent = readdir(dir)) != NULL)
- {
- int tt = give_fnn_number(ent->d_name);
- if ( tt > detected_fn_number )
- {
- detected_fn_number = tt;
- }
- }
- }
- else
- {
- fprintf(stderr, "Error opening directory\n"); return 1;
- }
- std::cout << "имя" << detected_fn_number+1 << "\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement