Infra_HDC icon

proga.cpp

Infra_HDC | PRO | 06/06/19 05:32:48 PM UTC | 0 ⭐ | 596 👁️ | Never ⏰ | []
C++ |

1.68 KB

|

None

|

0 👍

/

0 👎

#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;
}

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎