IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

Problème et AVC : _wfopen_s


Sujet :

C++

  1. #461
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 507
    Par défaut
    Bonsoir,

    Ok peut-être mais je ne vois toujours pas le fichier/répertoire "Berlin.[2023 Netflix]" dans le dépôt Git.
    Ok !
    Ok peut-être mais "Berlin.[2023 Netflix]" n'est toujours pas dans le dépôt Git dans GitHub.

    Vous donnez souvent l'URL du dépôt Git dans GitHub, mais sans la version correspond à vos problèmes et vous mettez à jour très souvent ce dépôt, avant même qu'on réponde à vos questions.
    Vous devriez indiquer le "Tag/Message" (que vous renseignez systématiquement) qui correspond à vos "problèmes" pour qu'on puisse suivre.

    Vous mettez à jour votre dépôt central (celui sur GitHub) avec du code qui ne compile pas, avec des erreurs qui correspondent à des messages postérieurs.
    Vous devriez de mettre à jour votre dépôt avec du code qui ne compile pas.

    A chaque fois, nous somme obligé de patcher "à l'arrache" le code pour arriver aux problèmes que vous signalez, cela prend "beaucoup" de temps pour rien.

    Stabilisez votre code pour qu'il compile, pusher le sur GitHub et communiquez-nous la version qui est stabilisées, si vous ne voulez pas attendre nos réponses.

    J'ai déjà plusieurs fois corrigées les problèmes que vous signalez dans les messages ultérieurs mais comme vous changez et rechangez le code tout le temps, on ne peut pas vous expliquez concrètement comment corriger votre code, il change tout le temps.

    Le projet a quelques problèmes avec l'utilisation d'en-tête dépréciés depuis C++17.
    Plutôt que de mettre des "#define _SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING" un peu n'importe où, je vous conseille d'utiliser les propriétés du projet :
    "Propriétés de configuration" -> "C/C++" -> "Préprocesseur" -> "Définitions de préprocesseur"
    Vous y ajoutez ce qu'il faut, comme "_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING" et d'autres, si vous voulez vraiment utiliser les fonctionnalités de C++17 sans à corriger l'utilisations d'en-tête dépréciés par C++17.
    Marche pas !!!
    Marche pas comment ?

    Il faut souvent enlever les choses en trop pour que la "bonne" (simple) solution fonctionne correctement.

    Ben :
    Pièce jointe 649301
    Comment faire ???
    En mettant de "points d'arrêt" dans le code pour voir les informations dans le débugueur.
    Allez à la ligne où vous voulez que le débogueur s'arrête et appuyez sur "F9". Un point rouge dans la marge gauche doit apparaître.
    Vous pouvez dégager tous les "std::wcout <<" juste en mettant un point d'arrêt la ligne avant.
    Vous pouvez aussi directement cliquer dans la marge gauche.

    Marche pas !!!
    https://github.com/laurentbouleau/Exemple : Erreur !!!
    Oui, d'accord, j'avais déjà vu et régler des problèmes dans des versions antérieurs, mais vous avez encore fait des modifications dans les zones où les corrections devaient être faites.
    Stabilisez votre code => corrigez les problèmes de compilation avant de faire autre chose.

    Je ne peux donnez une marche à suivre qu'à partir d'une version qui est définit et qui ne change par tout le temps.
    Pour le problème que vous signalez, c'est parce que le type "path" est ambiguë car vous faite des #include d'implémentations "concurrentes". Faut arrêter d'inclure tout et son contraire.

    Ben, non ! Serie(path racine) !!!
    Idem, de quelle classe "path" on parle ? => cf. les messages d'erreur qui indique le problème.

    J'en n'est marre !!!
    Message d'erreur SVP, vu qu'on ne sait pas de quelle version du code dans le dépôt il s'agit.

    ou est définit la classe (ou type) path ?
    Je ne la voit nulle part.
    Ne manque t'il pas un using dans la définition de ta classe ?
    Il y a un mixe avec les classes de "<filesystem>" et de "<experimental/filesystem>".
    "<experimental/filesystem>" devrait disparaitre si vous assumez d'utiliser C++17.

    Si vous assumez d'utiliser le C++17 :
    "#include <filesystem>", rien d'autre.
    Pour les #define, _SILENCE_
    "_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING" dans les propriétés du projet, pas dans le code source.
    "#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING 1" ça dégage si vous utilisez C++17 ou supérieur.

    Il faut faire des choix PUIS faire les corrections en conséquence.
    Si vous touchez à tous les boutons en priant pour qu'une combinaison fonctionne, on n'est pas arrivé, et au mieux, ça tombera en marche.

    Alors C++17 ou pas C++17 ?

  2. #462
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    Bonjour,

    Ok peut-être mais "Berlin.[2023 Netflix]" n'est toujours pas dans le dépôt Git dans GitHub.
    ...
    Alors C++17 ou pas C++17 ?
    Trop d’information !!! Je suis fatigué !!!
    Pas-à-pas !!!

    Ok peut-être mais "Berlin.[2023 Netflix]" n'est toujours pas dans le dépôt Git dans GitHub.
    Comment faire ?

    Vous donnez souvent l'URL du dépôt Git dans GitHub, mais sans la version correspond à vos problèmes et vous mettez à jour très souvent ce dépôt, avant même qu'on réponde à vos questions.
    Vous devriez indiquer le "Tag/Message" (que vous renseignez systématiquement) qui correspond à vos "problèmes" pour qu'on puisse suivre.

    Vous mettez à jour votre dépôt central (celui sur GitHub) avec du code qui ne compile pas, avec des erreurs qui correspondent à des messages postérieurs.
    Vous devriez de mettre à jour votre dépôt avec du code qui ne compile pas.

    A chaque fois, nous somme obligé de patcher "à l'arrache" le code pour arriver aux problèmes que vous signalez, cela prend "beaucoup" de temps pour rien.
    Moi : Ordi ---> https://github.com/laurentbouleau/Exemple ---> Vous : ok !!!
    Inversé : Vous ---> https://github.com/laurentbouleau/Exemple ---> Moi ??? Comment faire ??? Où est-il ?

    Stabilisez votre code pour qu'il compile, pusher le sur GitHub et communiquez-nous la version qui est stabilisées, si vous ne voulez pas attendre nos réponses.

    J'ai déjà plusieurs fois corrigées les problèmes que vous signalez dans les messages ultérieurs mais comme vous changez et rechangez le code tout le temps, on ne peut pas vous expliquez concrètement comment corriger votre code, il change tout le temps.
    Ah ! Mince !!!

    Marche pas comment ?

    Il faut souvent enlever les choses en trop pour que la "bonne" (simple) solution fonctionne correctement.
    Ok ! Pas de problème !

    Il faut souvent enlever les choses en trop pour que la "bonne" (simple) solution fonctionne correctement.
    Ah ! Ok !

    En mettant de "points d'arrêt" dans le code pour voir les informations dans le débugueur.
    Allez à la ligne où vous voulez que le débogueur s'arrête et appuyez sur "F9". Un point rouge dans la marge gauche doit apparaître.
    Ok !

    Vous pouvez dégager tous les "std::wcout <<" juste en mettant un point d'arrêt la ligne avant.
    Vous pouvez aussi directement cliquer dans la marge gauche.
    ??? Oui, mais comment faire ?
    Nom : Capture d’écran 2024-01-16 133928.png
Affichages : 322
Taille : 762 octets
    ???

    Oui, d'accord, j'avais déjà vu et régler des problèmes dans des versions antérieurs, mais vous avez encore fait des modifications dans les zones où les corrections devaient être faites.
    Stabilisez votre code => corrigez les problèmes de compilation avant de faire autre chose.
    Ah !

    Je ne peux donnez une marche à suivre qu'à partir d'une version qui est définit et qui ne change par tout le temps.
    Pour le problème que vous signalez, c'est parce que le type "path" est ambiguë car vous faite des #include d'implémentations "concurrentes". Faut arrêter d'inclure tout et son contraire.
    Ben oui !

    Idem, de quelle classe "path" on parle ? => cf. les messages d'erreur qui indique le problème.
    17 !!!

    Message d'erreur SVP, vu qu'on ne sait pas de quelle version du code dans le dépôt il s'agit.
    Ok 17 !!!

    Il y a un mixe avec les classes de "<filesystem>" et de "<experimental/filesystem>".
    "<experimental/filesystem>" devrait disparaitre si vous assumez d'utiliser C++17.
    Pardon !!! Ok !

    Si vous assumez d'utiliser le C++17 :
    "#include <filesystem>", rien d'autre.
    Pour les #define, _SILENCE_
    "_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING" dans les propriétés du projet, pas dans le code source.
    "#define _SILENCE_EXPERIMENTAL_FILESYSTEM_DEPRECATION_WARNING 1" ça dégage si vous utilisez C++17 ou supérieur.
    Ah oui ! Ok !


    Il faut faire des choix PUIS faire les corrections en conséquence.
    Si vous touchez à tous les boutons en priant pour qu'une combinaison fonctionne, on n'est pas arrivé, et au mieux, ça tombera en marche.

    Alors C++17 ou pas C++17 ?
    C++ 17 ! ok !

    Merci beaucoup
    Images attachées Images attachées  

  3. #463
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    J’en ai marre !!!
    Crevé !!!

    https://github.com/laurentbouleau/Exemple

  4. #464
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    Bonjour,

    https://github.com/laurentbouleau/Exemple : Berlin : ok !

    Merci

  5. #465
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    Bonsoir,

    Nom : Capture d’écran 2024-01-25 201439.png
Affichages : 283
Taille : 31,0 KoOk, mais ???

    Sinon,
    Nom : Capture d’écran 2024-01-25 201353.png
Affichages : 287
Taille : 5,0 Ko

    Oui ou non ?

    Merci beaucoup

  6. #466
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    17 : non ?
    20 : ok ou pas ?

    Nom : Capture d’écran 2024-01-25 221154.png
Affichages : 278
Taille : 32,9 Ko

    Merci

  7. #467
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    Bonjour bacelar,

    Exemple.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ...
    class Serie
    {
    public:
        //Serie(path racine); // Marche pas !!!
        Serie(); // Ok !
     ...
    };
    ...
    Alors, Exemple.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    ...
    int wmain(int argc, wchar_t* argv[])
    {
    ...
        const path racine(t);
        Serie serie;
        Saison saison;
    ...
        for (auto& r : directory_iterator(racine))
        {
            t = path(racine); // ???
            if (is_regular_file(t))
            {
    ...
            }
            if (is_directory(t2))
            {
    ...
            }
    ...
        }
    }
    Merci d'avance

  8. #468
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    Bonjour Bacelar,

    https://github.com/laurentbouleau/Exemple !!!
    std::wcout après !

    Mais : 10 jour : Marché pas

    Alors, que faire ?

    Exemple.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    int wmain(int argc, wchar_t* argv[])
    {
    
        //int i = 0;
        //
        init();
        //hOut = GetStdHandle(STD_OUTPUT_HANDLE);
        if (hOut == INVALID_HANDLE_VALUE)
        {
            return GetLastError();
        }
        //    DWORD dwMode = 0;
        if (!GetConsoleMode(hOut, &dwMode))
        {
            return GetLastError();
        }
        dwMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
        if (!SetConsoleMode(hOut, dwMode))
        {
            return GetLastError();
        }
    
        //    CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
        GetConsoleScreenBufferInfo(hOut, &csbiInfo);
    
        std::vector<std::wstring>v;
        //const wchar_t* p{ L"../Exemple.txt" };
        const wchar_t* p{L"Exemple.txt"};
        path filePath(p);
        try
        {
            // Dans le try, on est assuré que toute exception levée
            // pourra être traitée dans le bloc catch situé après.
            v = lire_fichierTxt(filePath, { L" " });
        }
        // Notez qu'une exception s'attrape par référence constante.
        catch (runtime_error const& exception)
        {
            // On affiche la cause de l'exception.
            std::wcout << L"Erreur : " << exception.what() << std::endl;
        }
        v.push_back(L"\\");
        std::wcout << L"t=[" << v[3] << L']' << L" ok !!!" << std::endl;
        std::size_t pos, pos2 = -1;
        pos = v.size();
    //Better Call Saul.[2015-2022]
        for (int i = 4; i < pos; i++)
        {
            v[3] = v[3] + L' ' + v[4];
            v.erase(v.begin() + 4, v.begin() + 5);
            pos = v.size();
        }
        std::wcout << L"v[3]=" << v[3] << std::endl;
        /*const*/ path racine(v[3]);
        std::wcout << L"racine=[" << racine << L']' << std::endl;
        Serie serie;
        //serie.racine = t;
        Saison saison;
        //std::wcout << L"racine.filename=[" << racine.filename() << L']' << std::endl;
        //racine /= L"\\";
        std::wcout << L"racine=[" << racine << L']' << std::endl;
        //racine /= L"/2023-12-29";
        racine /= L"\\";
        std::wcout << L"racine+=[" << racine << L']' << std::endl;
        std::wstring t2;
        t2 = L"";
        //for (auto const& racine_entry : directory_iterator{ racine })
        //{
        //    std::wcout << L"racine_entry.path()=" << racine_entry.path() << std::endl;
        //}
        //create_directories(racine / L"2023-12-29");
        //for (auto& r : directory_iterator(path(racine/*.filename()*/)))
        std::wcout << L"directory_iterator" << std::endl;
        for (directory_iterator next(racine), end; next != end; ++next)
        {
            t2 = next->path();
            std::wcout << t2 << std::endl;
            if (is_directory(t2))
            {
                std::wcout << t2 << std::endl;
    
            }
    
        }
          
         
        std::size_t s = saison.titres.size(); //to get the size of the vector
        std::tm j;
    
        
    
        for (int i = 0; i < s; i++)
        { //to print the elements stored in vector of tuples, vec
            std::wcout << i << std::endl;
            std::wcout << L"__x    =" << get<0>(saison.titres[i]) << std::endl;
            std::wcout << L"__t1   =[" << get<1>(saison.titres[i]) << L"]" << std::endl;
            std::wcout << L"__t2   =[" << get<2>(saison.titres[i]) << L"]" << std::endl;
            std::wcout << L"__t3   =[" << get<3>(saison.titres[i]) << L"]" << std::endl;
            j = get<4>(saison.titres[i]);
            std::wcout << L"__temps=[" << j.tm_hour*1 + j.tm_min << L"]" << std::endl;
            std::wcout << L"__p    =[" << get<5>(saison.titres[i]) << L"]" << std::endl;
        }
        std::wcout << L"Ok !!!" << std::endl;
        return EXIT_SUCCESS;
    }
    Merci beaucoup

  9. #469
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    Bonsoir,
    Crevé !

    ok : F5 !!!

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        std::wcout << L"racine+=[" << racine << L']' << std::endl;
    ???

    Mais :
    Nom : 20240202_200541.jpg
Affichages : 217
Taille : 339,2 Ko
    Le quel ?

    https://learn.microsoft.com/fr-fr/cp...?view=msvc-170
    https://learn.microsoft.com/fr-fr/cp...?view=msvc-170
    Et https://github.com/laurentbouleau/Exemple

    Merci

  10. #470
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    Bonjour,

    L'Orthophonie : AVC : tout savoir sur la rééducation orthophonique de l’aphasie
    https://www.topsante.com/medecine/tr...aphasie-249307

    Moi, en 2008 : L'AVC : 5 jour en comma ! Le cerveau malade !
    Moi : pas_à-pas !!!
    Et vous : textes long ou silence !!!

    Alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    int wmain(int argc, wchar_t* argv[])
    {
    ...
        std::vector<std::wstring> v;
        if(argc != 0)
        { 
            for (i = 0; i < argc; i++)
            {
                v.push_back(argv[i]);
             }
        }
    ...
    }
    pas écale : (Exemple.txt)
    you /t s "e:\\Séries.[]\\Better Call Saul.[2015-2022]"
    https://en.cppreference.com/w/cpp/fi...em/path/append
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #include <filesystem>
    #include <iostream>
    namespace fs = std::filesystem;
     
    int main()
    {
        fs::path p1 = "C:";
        p1 /= "Users"; // does not insert a separator
        std::cout << "\"C:\" / \"Users\" == " << p1 << '\n';
        p1 /= "batman"; // inserts fs::path::preferred_separator, '\' on Windows
        std::cout << "\"C:\" / \"Users\" / \"batman\" == " << p1 << '\n';
    }
    https://en.cppreference.com/w/cpp/fi...ctory_iterator !!!


    J'en est marre !!!

  11. #471
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 507
    Par défaut
    C'est assez compliqué de vous répondre car vous ne faites pas vraiment de phrases dans vos réponse.
    On fait plus de la devinette.
    C'est peut-être compliqué pour vous de faire des phrases mais cela nous aiderait bien.

    Je vais essayé de synthétiser ce que j'ai compris de vos réponses.

    Vous semblez avoir assez bien assimilé l'utilisation de GitHub pour nous fournir le code source, c'est cool.
    Mais vous ne spécifiez pas version dans le dépôt qui correspond aux erreurs qui vous "bloquent".
    Si vous faites des modifications pour tester des "solutions" et que vous les "pusher" dans le dépôt avant même qu'on puisse analyser les problèmes, ça devient compliqué pour nous.
    Actuellement, la dernière version du dépôt https://github.com/laurentbouleau/Exemple, c'est "Janvier 12".
    Pour la suite de la réponse, on rend comme base cette version "Janvier 12".
    Il semble que vous n'avez pas encore "pusher" dans le dépôt beaucoup de tentatives de correction à vos erreurs de compilation, on va donc pouvoir en parler.

    Entre votre première réponse à mon dernier message et votre dernier message, les messages d'erreurs ont changés mais ceux correspondant à ce qu'on obtient avec la version "Janvier 12" de votre dépôt https://github.com/laurentbouleau/Exemple sont plus proche de ceux de votre première réponse à mon dernier message.
    Je vais donc donner comment corriger "à l'arrache" la version "Janvier 12" les erreurs de compilations puis expliquer les problèmes d'exécution qui suivront.
    Vous devrez donc vérifier que ce que je préconise comme modification soit compatible avec les vôtre.

    Les problèmes liés au fait que le compilateur ne comprennent pas ce qu'est le type "path" :
    Le type classe est défini dans le fichier d'en-tête "<filesystem>" dans l'espace de nom "std::filesystem".
    Il faut donc ajouter "std::filesystem::" devant path :
    Dans Exemple.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Serie(std::filesystem::path racine);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::filesystem::path racine;
    Dans exemple.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::filesystem::path filePath(p);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Serie::Serie(std::filesystem::path racine)
    {
    ...
    }
    {
    Dans des messages d'erreur que vous avez posté, il est mentionné le type "std::experimental::filesystem::v1::path", c'est le type utilisable avant C++17.
    Si vous avez encore ce type mentionné dans les messages d'erreur, c'est que vous utilisez encore des trucs antérieurs au C++17 qui ne devraient plus être utilisés dans votre code.
    Donc suppression du "#include <experimental/filesystem>" dans exemple.h et vérification dans les options du projet que c'est bien la norme C++17 ou supérieur qui est en vigueur.

    La seule autre erreur qui interdit la compilation de la version "Janvier 12" est le type de retour de la fonction "PrintDate_ou_Dates".
    Il faut le changé de "bool" à "void" car cela n'a pas de sens de renvoyer un booléen depuis une fonction d'affichage qui devrait lancer des exceptions.
    (Mais surtout, ça permet de compiler le projet sans faire de modification dans le corp de la fonction )

    Dans Exemple.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const void PrintDate_ou_Dates();
    Dans Exemple.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const void Serie::PrintDate_ou_Dates()
    ("_SILENCE_CXX17_CODECVT_HEADER_DEPRECATION_WARNING" semble bien avoir été ajouté aux constantes de compilation, dans les options du projet, cool)

    Donc avec ces 5 petites modifications, https://github.com/laurentbouleau/Exemple en version "Janvier 12" est compilable.

    Mais le fait de compiler, ça fait pas tout.

    Ca plante à l'exécution :
    Nom : erreur1.png
Affichages : 205
Taille : 5,9 Ko

    Cela vient du code ligne 1088 de "Exemple.cpp":
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    t = lire_fichierTxt(filePath);
    Avec filePath = L"../Exemple.txt"

    C'est un chemin relatif au working directory.
    Les options de débogage du projet indique un Répertoire de travail :
    $(ProjectDir)
    C'est le répertoire contenant le fichier "Exemple.vcxproj".
    Le fichier "Exemple.txt" est dans ce répertoire, pas dans son répertoire parent:
    Il faut donc que filePath = L"./Exemple.txt" pas L"../Exemple.txt"
    Et là, la ligne "passe".
    Je pense qu'il y aura pas mal de petites corrections de ce type.

    Inversé : Vous ---> https://github.com/laurentbouleau/Exemple ---> Moi ??? Comment faire ??? Où est-il ?
    C'est faisable, mais vous ne m'avez pas donné les droits en modification du dépôt Git.
    Mais il ne faut pas beaucoup de travail pour le rendre compilable, non ?

    ??? Oui, mais comment faire ?
    Pouvez-vous être plus précis ?

    Le quel ?
    "Démarrer le débogage"

  12. #472
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    Bonsoir,

    Ok ! https://github.com/laurentbouleau/Exemple : Février 6

    Mais (ou pas) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    const std::vector<std::wstring> lire_fichierTxt(std::wstring const& nomFichier, std::vector<std::wstring> separeteurs)
    {
        std::string contenuFichier{ u8"" };
        std::string ligneCourante{ u8"" };
        std::vector<std::wstring> retVal{};
    
        ifstream fichier{ nomFichier };
        if (!fichier)
        {
            throw std::runtime_error("Fichier impossible à ouvrir.");
        }
    
        while (getline(fichier, ligneCourante, u8'\n'))
        {
            contenuFichier += ligneCourante + u8'\n';
        }
    
        if (contenuFichier == u8"")
        {
            throw std::runtime_error("Le fichier '" + wstr_to_u8(nomFichier) + "' est vide.");
        }
        //wstring_convert<codecvt_utf8_utf16<wchar_t>, wchar_t> convertiseur;
    
        wstring_convert<codecvt_utf8<wchar_t>, wchar_t> convertiseur;
        std::wstring converti = convertiseur.from_bytes(contenuFichier);
        rtrim(converti);
    
        bool found = false;
    
        do
        {
            found = false;
            size_t pos_found = std::string::npos;
            std::wstring sep_found = L"";
    
            for (auto&& sep : separeteurs)
            {
                std::size_t pos = converti.find(sep);
                if (pos != std::wstring::npos && (!found || pos_found > pos))
                {
                    pos_found = pos;
                    found = true;
                    sep_found = sep;
                }
            }
    
            if (found)
            {
                retVal.push_back(converti.substr(0, pos_found));
                converti = converti.substr(pos_found + sep_found.length());
            }
        } while (found);
    
        if (converti.length() > 0)
        {
            retVal.push_back(converti);
        }
    
        //std::vector<std::wstring>::iterator iter;
        //for (iter = retVal.begin(); iter != retVal.end(); iter++)
        //    std::wcout << L"iter={" << *iter << L'}' << std::endl;
        return retVal;
    }
    Erreur ou pas : Problème !!!
    ------------------------------
    Demain, fatigue !!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dans Exemple.h :
    Serie(std::filesystem::path racine);
    ...
    std::filesystem::path racine;
    ...
    Dans exemple.cpp :
    std::filesystem::path filePath(p);
    Serie::Serie(std::filesystem::path racine)
    {
    ...
    }
    Merci beaucoup

  13. #473
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    afficher_Titres(nomFichier); ???
    Merci

  14. #474
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    Bonjour Bacelar,

    C'est dure !!!

    https://github.com/laurentbouleau/Exemple : ok (Févier 6) (hier) !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Serie::Serie(std::filesystem::path racine)
    {
        this->racine = racine;
    }
    Ok !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        std::wstring t;
        const wchar_t* p{ L".\\Exemple.txt" };
        std::filesystem::path filePath(p);
    ...
        const std::wstring racine = t + L"Better Call Saul.[2015 - 2022]";
        std::wcout << L"racine=[" << racine << L']' << std::endl;
        Serie serie(std::filesystem::path racine);
    
        std::wcout << L"serie.racine=[" << ??? << L"]" << std::endl;
    Que faire ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        for (directory_iterator next(std::filesystem::path racine), end; next != end; ++next)
    ???


    Merci beaucoup

  15. #475
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 507
    Par défaut
    Heu, pas si Ok.
    La version "Février 6" ne compile pas chez moi (et chez les autres aussi, je pense).

    La fonction "Serie:: PrintDate_ou_Dates()" indique retourner un "const bool" mais votre implémentation ne retourne rien.

    Comme un "Printxxx" n'a pas vraiment besoin de renvoyer quoi que ce soit (avec les paradigmes C++ avec exception ; en C on aurait du renvoyé un "booleén"), on va changer la signature de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const bool Serie::PrintDate_ou_Dates()
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void Serie::PrintDate_ou_Dates()
    et cela aussi bien dans Exemple.cpp que dans Exemple.h.

    Et là, pouf, ça compile et à l'exécution, le programme retourne 0, tout est "OK".

    Essayez de mettre des "labels/noms de version" sur une version du code source qui compile. SVP.

    Pour la fonction "lire_fichierTxt(std::wstring const& nomFichier, std::vector<std::wstring> separeteurs)" :
    ifstream fichier{ nomFichier };
    if (!fichier)
    {
    throw std::runtime_error("Fichier impossible à ouvrir.");
    }
    Vous n'indiquez pas précisément votre question, alors je vais faire quelques remarques, mais c'est quand même un code "acceptable" pour un débutant.

    Vous avez 2 fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const std::vector<std::wstring> lire_fichierTxt(std::wstring const& nomFichier, std::vector<std::wstring> separeteurs)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    const std::wstring lire_fichierTxt(std::wstring const& nomFichier)
    Ces 2 fonctions portent le même nom, c'est pas un problème en C++.
    Mais, généralement, c'est qu'elles font des choses identiques mais à partir de données différentes.
    Ici, ça semble être le cas, mais le type de données retournés est différent, il faudrait harmoniser la chose.
    Soit c'est vraiment "la même chose" et dans ce cas, il faudra avoir le même type de retour, celui le plus adapté au code qui devra s'en servir. (cas 1)
    Soit c'est des choses différentes, alors ces fonctions devraient avoir des noms différents, pour le ne pas "tromper" les utilisateurs de ces fonctions. (cas 2)
    Il y a beaucoup de codes communs entre ces 2 fonctions, ce qui est normal si l'on est dans le cas 1.
    Dans le cas 1, "lire_fichierTxt(std::wstring const& nomFichier)" serait un cas particulier de "lire_fichierTxt(std::wstring const& nomFichier, std::vector<std::wstring> separeteurs)" avec une liste de séparateur vide.
    Il est alors facile de remplacer le corps de la première fonction par juste un appel à la seconde fonction.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    const std::vector<std::wstring> lire_fichierTxt(std::wstring const& nomFichier)
    {
        return lire_fichierTxt(nomFichier, std::vector<std::wstring>());
    }
    Moins de code à maintenir, c'est moins de de bugs.
    Le code actuel de votre fonction "lire_fichierTxt(std::wstring const& nomFichier, std::vector<std::wstring> separeteurs)" ne gère pas correctement ce cas d'usage, pensez à le corriger.

    Il faut distinguer les erreurs qui sont dû à une erreurs de programmation à une erreur "runtime"(valeur entrée par l'utilisateur erronée, gestion d'un cas non spécifié (plus de mémoire, problème de droits, etc...)).
    Dans ce "throw" en ligne 10, on ne sait pas trop ce qu'on cherche à signaler.
    Si c'est un cas d'erreur de programmation, un "assert" au lieu d'un throw serait plus pertinent.
    Si c'est un cas d'erreur "runtime", vous ne donnez pas assez d'information pour utilisable par l'utilisateur de l'application, comme le "nom"(le chemin) du fichier qui pose problème.
    nom/chemin que vous spécifiez dans le message d'erreur en ligne 20.
    Si vous savez pas trop, commencez par un "assert" tant que vous n'avez pas organisé votre code.
    Normalement, le cas d'un fichier qui n'existe pas devrait avoir été signalé en amont, dés la saisie de celui-ci dans la console ou la lecture dans un fichier, pour avoir un contexte d'erreur précis.
    Donc "assert(fichier)" ne devrait pas se déclencher sur un simple fichier inexistant. Si vous l'avez sur ce cas, c'est que les vérifications en amont sont défaillantes => erreur de programmation donc assert pertinent).
    Pour renforcer la sécurité de la fonction, vous devriez changer le type du paramètre "nomFichier" en un type "std::path" pour indiquer que l'existence du fichier doit être vérifié avant l'appel (il y a peut-être des types encore plus pertinent que "std::path").
    Si le problème est un cas de droit d'accès ou de fichier qui à disparu, c'est des cas que vous ne gérer pas encore, donc assert pertinent.
    Si tous les cas que devraient gérer le programme sont là, vous pouvez transformer le "assert' en un "throw", mais avec les informations pertinentes pour l'utilisateur du programme.

    Attention, une fonction de 63 lignes (il y a pas mal de lignes blanches ou en commentaire, je sais), ça commence à être un peu long. Pensez à factoriser le code avec des sous-fonctions réutilisables.
    exemple de sous fonctions possible :
    - le code des lignes 13 à 16 qui lit le contenu d'un fichier et le stocke dans un tableau de ligne.
    - le code des lignes 24 à 26 qui convertit une chaine utf-8 en std::wstring (avec un rtrim pour une mise ne forme ?)
    - etc...
    Cela permet d'avoir moins de code à maintenir et du code plus court et facile à lire.
    Vous faites souvent des copier-coller de code, pensez à faire des fonctions dédiées à la place de ces copier-coller.
    Vous faites souvent des recherches de caractères/motifs dans ces chaines de caractères. Il existe un concept en programmation : "les expressions régulières", qui devrait faciliter l'écriture du code faisant ces recherches.

    Erreur ou pas : Problème !!!
    Quelle est la question ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dans Exemple.h :
    Serie(std::filesystem::path racine);
    ...
    std::filesystem::path racine;
    ...
    Dans exemple.cpp :
    std::filesystem::path filePath(p);
    Serie::Serie(std::filesystem::path racine)
    {
    ...
    }
    Idem, quelle est la question ?

    afficher_Titres(nomFichier); ???
    Merci
    Idem, quelle est la question ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    const std::wstring racine = t + L"Better Call Saul.[2015 - 2022]";
        std::wcout << L"racine=[" << racine << L']' << std::endl;
        Serie serie(std::filesystem::path racine);
    Heu, ça "compile" mais ça fait pas ce que vous pensez.
    C'est mieux comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    const std::wstring racine = t + L"Better Call Saul.[2015 - 2022]";
        std::wcout << L"racine=[" << racine << L']' << std::endl;
        Serie serie(racine);

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::wcout << L"serie.racine=[" << ??? << L"]" << std::endl;
    (On n'est d'accord que l'utilisation de "std::wcout", c'est juste pour faire des tests dans votre projet "Exemple", sinon, je vais me fâcher )
    Il y a un choix à faire.
    Soit le champ "racine" est un champ public, soit il ne l'ai pas.
    Si c'est un champ public, tout utilisateur de la classe Serie pourra accéder directement à ce champ via un code comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::wcout << L"serie.racine=[" << serie.racine << L"]" << std::endl;
    C'est bien, mais ça fait du champ "racine" un élément de l'interface PUBLIC de la classe Serie.
    Ça veut dire que vous ne pourrez pas facilement modifier le comportement de cette classe Serie, car tout code utilisateur de la classe Serie qui utilisera ce champ sera cassé si vous changez la nature de ce champ (public/privé, son type, son existence ou pas, son utilisation interne dans la classe).
    Ce n'est pas un problème pour des classes "basiques" comme les structures en C, qui n'ont pas de "comportement" associés, mais pour des classes plus complexes cela devient problématique.
    Comme je ne sais pas ce que vous allez en faire je ne peux pas dire s'il faut que "racine" soit un champ public ou protected/privé.

    Si le champ "racine" est un champ non public, la méthode habituelle est de créer un "accesseur".
    Un accesseur c'est une fonction qui à pour rôle de faire en sorte que le code utilisateur de la classe ait accès à des informations "plus ou moins interne" à l'objet.
    Par exemple, en ajoutant la ligne suivante dans la section publique de la déclaration de la classe Serie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class Serie
    {
    public:
    ...
        std::filesystem::path getRacine() { return racine; };
    ...
    }
    On crée un accesseur "getRacine" qui sera utilisable ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::wcout << L"serie.racine=[" << serie1.getRacine() << L"]" << std::endl;
    En utilisant un accesseur, si vous voulez changer comment fonctionne en interne votre classe Serie, vous pourrez toujours modifier l'implémentation de l'accesseur pour que le code utilisant ce champ fonctionne toujours.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        for (directory_iterator next(std::filesystem::path racine), end; next != end; ++next)
    Je ne vois pas ce code dans le projet exemple, je ne vois que du code qui utilise correctement ce type de syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        for (directory_iterator next(racine), end; next != end; ++next)

  16. #476
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    Ok ! Mais les informations plus longtemps, trop difficiles et compliqué !!!
    Mois, pas-pas !!! Merci d'avance !!!

    Exemple.h
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
        std::vector<Saison>saisons{};
        std::filesystem::path getRacine() { return racine; };
        std::filesystem::path racine;
    ...
    et Exemple.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    ...
        const std::wstring racine = t + L"Better Call Saul.[2015-2022]";
        std::wcout << L"racine=[" << racine << L']' << std::endl;
        Serie serie(racine);
     
        std::wcout << L"serie.racine=[" << serie.getRacine() << L"]" << std::endl;
    ...
    Ok ! Merci

    Mais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    ...
        std::wcout << L"directory_iterator :" << std::endl;
        std::size_t pos, pos2 = -1;
        t = L"";
        for (directory_iterator next(racine), end; next != end; ++next)
        {
            t = next->path();
            std::wcout << L"t=[" << t << L']' << std::endl;
            if (is_regular_file(t))
            {
                std::wcout << L"===> is_regular_file(1)" << t << L']' << std::endl;
                std::wcout << std::endl;
                continue;
            }
            if (is_directory(t))
            {
                std::wcout << L"==> is_directory(1)=[" << t << L']' << std::endl;
                std::wstring t2 = t;// +L"\\";
                pos = t2.find_last_of(L"\\");
                pos++;
                std::wcout << L"t2=[" << t2 << L']' << std::endl;
                t2 = t2.substr(pos);
                std::wstring const& nomSousDossier = t2;// .substr(pos);
                std::wcout << L"t2=" << t2 << std::endl;
                saison.affichier_sous_Dossier(nomSousDossier);
                path filename(t);
     
                for (directory_iterator next2(filename), end2; next2 != end2; ++next2)
                {
                    t2 = next2->path();
                    //std::wcout << L"zzz t2=[" << t2 << L']' << std::endl;
                    if (is_regular_file(t2) && saison.episode == 0)
                    {
                        saison.afficher_Episodes(t2);
                        saison.episode = 1;
                        std::wcout << L"Episodes ok !!!" << std::endl;
                        break;
                    }
                }
                if (saison.episode == 0)
                {
                    std::wcout << L"Pas d'episodes !!!" << std::endl;
                    exit(1);
                }
     
                for (directory_iterator next2(filename), end2; next2 != end2; ++next2)
                {
                    t2 = next2->path();
                    //std::wcout << L"zzz t2=[" << t2 << L']' << std::endl;
                    if (is_regular_file(t2))
                    {
                        std::wcout << L"is_regular_file=[" << t2 << L']' << std::endl;
                        std::wstring t3 = t2;
                        pos = t3.find_last_of(L"\\");
                        pos++;
                        t3 = t3.substr(pos);
                        std::wcout << L"t3=[" << t3 << L']' << std::endl;
                        pos = t3.find(L".txt");
     
                        if (pos != std::wstring::npos)
                        {
                            if (t3 == L"_you_.txt")
                                //std::wcout << t3 << std::endl;
                                continue;
                            saison.affichier_sous_Fichier(t3);
                            //saison.afficher_Date_ou_Dates(t3);
                        }
                    }
                    std::wcout << L"t2=[" << t2 << L']' << std::endl;
                }
            }
     
            //        saisons.push_back(saison);
            std::wcout << L"Arrêté !!!" << std::endl;
            break;
            //exit(1);
        }
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        for (directory_iterator next(racine), end; next != end; ++next)
    directory_iterator, next, is_regular_file, is_directory...
    Crevé !!!

    Merci

  17. #477
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        for (const auto& entry : std::filesystem::directory_iterator((serie.getRacine())))
        {
             //t = entry->path();
            entry.path();
            if (is_regular_file(entry))
            {
                std::wcout << L"===> is_regular_file(1)" << entry << L']' << std::endl;
                std::wcout << std::endl;
                continue;
            }
            if (is_directory(entry))
            {
    ...
    Trouvé, alors être !!!

  18. #478
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
        for (const auto& entry : std::filesystem::directory_iterator((serie.getRacine())))
        {
            std::wcout << L"[" << entry << L']' << std::endl;
            if (entry.is_regular_file())
            {
                std::wcout << L"===> is_regular_file(1)=[" << entry << L']' << std::endl;
                std::wcout << std::endl;
                continue;
            }
            if (std::filesystem::is_directory(entry))
            {
                std::wcout << L"==> is_directory(1)=[" << entry << L']' << std::endl;
                ???
                std::wstring const& nomSousDossier = ???
                saison.affichier_sous_Dossier(nomSousDossier);
    ...
    Pas trouvé !!!
    Pas de solution !!!

    Merci

  19. #479
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786
    Par défaut
    Bonjour Bacelar,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
        for (const auto& entry : std::filesystem::directory_iterator((serie.getRacine())))
        {
            std::wcout << L"[" << entry << L']' << std::endl;
            if (entry.is_regular_file())
            {
                std::wcout << L"===> is_regular_file(1)=[" << entry << L']' << std::endl;
                std::wcout << std::endl;
                continue;
            }
            if (std::filesystem::is_directory(entry))
            {
                std::wcout << L"==> is_directory(1)=[" << entry << L']' << std::endl;
                t = entry.path().wstring();
                pos = t.find_last_of(L"\\");
                pos++;
                t = t.substr(pos);
                auto const& nomSousDossier = t;
                std::wcout << L"nomSousDossier=[" << nomSousDossier << L']' << std::endl;
                saison.affichier_sous_Dossier(nomSousDossier);
                for (const auto& entry2 : std::filesystem::directory_iterator( ??? )))
                {
    Chercher : pas trouvé !!!

    Merci d'avance

  20. #480
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    786
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 786

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probléme avc la formclosing
    Par dv-2008 dans le forum VB.NET
    Réponses: 2
    Dernier message: 23/03/2008, 16h33
  2. probléme avc console.readline()
    Par dv-2008 dans le forum VB.NET
    Réponses: 7
    Dernier message: 10/03/2008, 00h33
  3. j'ai un probléme avc un code vb.net aider moi svp
    Par dv-2008 dans le forum VB.NET
    Réponses: 12
    Dernier message: 29/01/2008, 09h20
  4. Problème avc une requête
    Par Raiga dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 30/06/2007, 18h36
  5. Toujours problème de lien avce la lib Cblas
    Par Kirou dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 19/06/2007, 14h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo