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. #1001
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 455
    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 455
    Par défaut
    Pas du tout Ok.

    Vous faites tout le contraire de mes "recommandations".

    Vous avez toujours cette cochonnerie de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if (racine == L"Azertyuiop £££.[2024].Mini-série")
    //if(racine == L"Star Wars - Episode VII - Le réveil de la force.(2015-12-16)")
        ;
    else
        continue;
    Et "Azertyuiop £££.[2024].Mini-série" n'utilise pas les fonctions qui "vous posent problème" actuellement.

    Ne filtrez pas les cas.
    Vous devez voir si vos modifications entraînent des régressions.
    Mais comme vous ne prenez pas la peine de corriger "correctement" les problèmes quand ils arrivent, vous allez vous les prendre tout dans la figure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::wstring SequenceVisionnage::Print_Dates_de_visionnage(int numero_sequence, std::vector<DateRecord> m_DatesVisionnage) const
    Vous remettez un paramètre qui ne sert à rien, vous ne supprimez pas l'autre paramètre qui ne sert à rien et vous ne prenez pas la peine d'au moins changer son nom pour ne pas le confondre avec le champ.

    En plus, vous n'avez à faire aucune modification dans le corps de la fonction si vous aviez supprimé tous les paramètres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::wstring SequenceVisionnage::Print_Dates_de_visionnage() const
    EDIT :
    Les warning VCR001 (Vous avez dû activer une option pour afficher ce type de warning, c'est bien) montre que vous n'êtes pas rigoureux dans les déclarations de fonctions dans le .h.
    Les déclarations dans le .h et les définitions dans le .cpp doivent se correspondre, avoir les mêmes signatures.
    Là, vous supprimez ou renommez des fonctions dans le .cpp, vous ne le faites pas le .h.
    Et la version du code dans Github n'a pas les mêmes erreurs.

  2. #1002
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    785
    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 : 785
    Par défaut
    https://github.com/laurentbouleau/Exemple : Novembre 40 (02/12/2024)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::wstring SequenceVisionnage::Print_Dates_de_visionnage() const

  3. #1003
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 455
    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 455
    Par défaut
    Ok.
    Ne trouvez-vous pas que c'est bien plus simple sans ces paramètres inutiles ?

  4. #1004
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    785
    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 : 785
    Par défaut
    Bonsoir,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    void Episode::xxx_SequenceVisionnage(InfosVisionnage& info_vis) const
    {
        //m_liste_sequence_visionnages_ordonnee_chronologiquement.push_back(SequenceVisionnage(*this, info_vis));
        for (auto i = 1; i < m_liste_sequence_visionnages_ordonnee_chronologiquement.size(); i++)
        {
            m_liste_sequence_visionnages_ordonnee_chronologiquement[*this, info_vis.m_titres[i]] = m_liste_sequence_visionnages_ordonnee_chronologiquement[*this, info_vis.m_titres[0]];
        }
    }
    Pouvez-vous expliquer ?

    Merci d'avance

  5. #1005
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 455
    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 455
    Par défaut
    Heu, expliquez quoi ?
    C'est votre code et "xxx_SequenceVisionnage" c'est pas très parlant.
    C'est quoi l'objectif de votre fonction ???
    la fonction "Episode::ajouter_SequenceVisionnage(const InfosVisionnage& info_vis)" ajoute une SequenceVisionnage à un épisode, mais que fait "xxx_SequenceVisionnage" ?

  6. #1006
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    785
    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 : 785
    Par défaut
    void Episode:: xxx_SequenceVisionnage(InfosVisionnage& info_vis) const ===> après void SequenceVisionnage:rint(int numero_sequence) const !!!

    Et : xxx ===> ???

    et : if (numero_sequence <= 0) (void SequenceVisionnage:: Print(int numero_sequence) const)

    après :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void Episode::Print()
    {
        bool first = true;
        int numero_sequence = 1;
        for (const auto& sequence : m_liste_sequence_visionnages_ordonnee_chronologiquement)
        {
            sequence.Print(numero_sequence);
            first = false;
            numero_sequence++;
        }
    }
    Voilà !!!

    Merci

  7. #1007
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 455
    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 455
    Par défaut
    Je comprends rien.

    "first" ne sert plus à rien.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void Episode::Print()
    {
        int numero_sequence = 1;
        for (const auto& sequence : m_liste_sequence_visionnages_ordonnee_chronologiquement)
        {
            sequence.Print(numero_sequence);
            numero_sequence++;
        }
    }
    Qu'est qui vous manque ???

  8. #1008
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    785
    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 : 785
    Par défaut
    stact std::vector<std::wstring> titres; ???
    avec :
    titres = m_titries; ???

    (InfosVisionnage::InfosVisionnage(const Saison& saison, fs::path const& m_cheminFichier) : m_saison{ saison })

  9. #1009
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    785
    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 : 785
    Par défaut
    Moi : Covid !!! J'en ai marre !!!!

  10. #1010
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 455
    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 455
    Par défaut
    et : if (numero_sequence <= 0) (void SequenceVisionnage:: Print(int numero_sequence) const)
    Par construction "numero_sequence" ne sera "jamais" inférieur ou égale à 0 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    void Episode::Print() const
    {
        int numero_sequence = 1;
        for (const auto& sequence : m_liste_sequence_visionnages_ordonnee_chronologiquement)
        {
            sequence.Print(numero_sequence);
            numero_sequence++;
        }
    }
    Si vous voulez vraiment vous en assurer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void SequenceVisionnage::Print(int numero_sequence) const
    {
        assert(numero_sequence >= 1);
    ...
    }
    Dans quel cas pensez-vous avoir "numero_sequence <= 0" ???

    stact std::vector<std::wstring> titres; ???
    avec :
    titres = m_titries; ???
    Je suppose que vous voulez parler des titres d'un épisode que vous voulez afficher.
    Où sont-ils dans les fichiers ?
    Moi, je les vois dans chaque première ligne de chaque fichier de "séquence/infos de visionnage" ("1x01.2024-xx-yy...txt").
    Donc :
    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
    InfosVisionnage::InfosVisionnage(const Saison& saison, fs::path const& m_cheminFichier) : m_saison{ saison }
    { // "{" : marche pas !!!
    ...
        std::vector<std::wstring> file_content = lire_fichierTxt(m_cheminFichier.wstring(), { L"\n" }, false);
        m_NumeroEpisode = std::stoi(match[filename_numero_episode_index]);
    
        if (file_content.size() > 0 && file_content[0] != L"")
        {
           std::size_t pos;
            if (m_NumeroEpisode != 0)
            {
                pos = file_content[0].find(L". ");
                file_content[0] = file_content[0].substr(pos + 2);
            }
    
            m_titres = extraire_Titres_Depuis_UneLigne(file_content[0]);
        }
    ...
    }
    Donc le champ m_titres de InfosVisionnage contient les titres.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    struct SequenceVisionnage
    {
        SequenceVisionnage(const Episode& episode, const InfosVisionnage& info_vis) :
            m_episode{ episode }, m_titres{ info_vis.m_titres }, m_streaming{ info_vis.m_streaming },
            m_duree_en_seconde{ info_vis.m_duree_en_seconde }, m_resume{ info_vis.m_resume },
            m_DatesVisionnage{ info_vis.m_DatesVisionnage }
        {};
    ...
    }
    Donc le champ m_titres de SequenceVisionnage contient les titres.

    Vous pouvez donc facilement ajouter un champ m_titres à un épisode qui sera initialisé au moment de la construction de l'objet épisode :

    Episode(InfosVisionnage const& info_vis) :m_saison{ info_vis.m_saison },m_titres {info_vis.m_titres}{ ajouter_SequenceVisionnage(info_vis); };
    Et si vous voulez les afficher au moment du "Print" de l'épisode :
    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
    void Episode::Print() const
    {
        for (const auto& titre : m_titres)
        {
            std::wcout << titre << L" ";
        }
        std::wcout << L"\r\n";
     
        int numero_sequence = 1;
        for (const auto& sequence : m_liste_sequence_visionnages_ordonnee_chronologiquement)
        {
            sequence.Print(numero_sequence);
            numero_sequence++;
        }
    }
    Mais vous affichez déjà des titres dans "SequenceVisionnage:: Print(int numero_sequence) const".
    Et j'ai même l'impression que tout votre bordel avec "numero_sequence == 1" dans "SequenceVisionnage:: Print(int numero_sequence) const", c'est juste pour afficher les données de l'épisode une seule fois.
    Alors faite l'affichage de ces données dans "Episode:: Print() const", pas dans SequenceVisionnage:: Print(int numero_sequence) const".

  11. #1011
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    785
    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 : 785
    Par défaut
    J'en sais rien !!!

    Nom : Capture d’écran 2024-12-04 205240.png
Affichages : 94
Taille : 21,2 Ko

    2x0 : La phrase : verbre (148min) : 14/07/2021
    A la mort (etc...)
    [bis] : 17/07/2021, 18/07/2021 [pas-à-pas]
    Alors,
    2x0 : La phrase : verbre [bis] : 17/07/2021, 18/07/2021 [pas-à-pas]
    Voilà !!!

    Comment faire ?

    Merci vraiment

  12. #1012
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    785
    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 : 785
    Par défaut
    https://github.com/laurentbouleau/Exemple : Décembre 01 (04/12/2024)

    m_NumeroEpisode
    et
    m_NumeroSaison
    ???

    Je suis crevé !!!

    Merci

  13. #1013
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 455
    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 455
    Par défaut
    Vous persistez à ne pas fournir des sources et des données identiques à ce que vous utilisez pour faire des copies d'écran.
    Dans ces conditions, ça va être compliqué de vous aider.

    J'en sais rien !!!
    Personne ne le saura à votre place.
    Vous devez maitriser ce que vous voulez avant de l'implémenter.

    Comme les données sont différentes, on ne peut pas reproduire votre affichage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (numero_sequence <= 1)
    Quel intérêt de changer "numero_sequence == 1" en "numero_sequence <= 1" quand numero_sequence est compris entre 1 et l'infini positif ?

    A quoi ça sert ???

    2x0 : La phrase : verbre (148min) : 14/07/2021
    A la mort (etc...)
    [bis] : 17/07/2021, 18/07/2021 [pas-à-pas]
    Alors,
    2x0 : La phrase : verbre [bis] : 17/07/2021, 18/07/2021 [pas-à-pas]
    C'est quoi le problème ???
    L'affichage de "A la mort (etc...)" ?
    C'est le but des lignes suivante dans la fonction "SequenceVisionnage:: Print" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    std::wstring resume_str;
     
    if (numero_sequence == 1)
    {
        resume_str += L"\r\n";
        for (auto r : m_resume)
            resume_str += r;
    }
    Donc, si vous n'en voulez pas, pourquoi avoir ajouter ce code ???

    m_NumeroEpisode
    et
    m_NumeroSaison
    On parle desquels ? Vous en avez mis dans toutes las classes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct Episode
    {
    ....
        long m_numero{ 0 };
     
        long m_NumeroEpisode{1};
    };
    Vous pouvez me dire pourquoi avoir un champ pour faire la même chose ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    struct Saison
    {
    ...
        int m_numero{ -1 };
    ...
        long m_NumeroSaison{};
     
    };
    Idem, pourquoi faire ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    struct SequenceVisionnage
    {
    ...
        long m_NumeroSaison{1};
        long m_NumeroEpisode{1};
    ...
    };
    Idem pourquoi faire compliqué ???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void SequenceVisionnage::Print(int numero_sequence) const
    {
    ...
        if (numero_sequence <= 1)
        {
            //chiffre_str = std::to_wstring(m_episode.m_saison.m_numero) + m_keyColor[1] + L'x' + m_valuesColor + std::to_wstring(m_episode.m_numero) + m_keyColor[1] + L" : " + m_valuesColor;
    ...
            chiffre_str = std::to_wstring(m_NumeroSaison) + m_keyColor[1] + L'x' + m_valuesColor + std::to_wstring(m_episode.m_NumeroEpisode) + m_keyColor[1] + L" : " + m_valuesColor;
    ...
        }
    ]
    Le code en commentaire utilise les "ancien" champs, faciles à initialiser correctement, le code non commenté utilise les "nouveaux" champs, très compliqués à initialiser (et complètement faux actuellement).
    Ce qu'il faut faire, c'est correctement initialiser les "anciens" champs, pas en mettre des nouveaux.

    Comment connaitre le numéro d'un épisode, au moment de ça création ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Episode(InfosVisionnage const& info_vis) :m_saison{ info_vis.m_saison } { ajouter_SequenceVisionnage(info_vis); };
    ici, l'argument "info_vis" contient un champ "m_NumeroEpisode" qui contient notre info.
    Donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Episode(InfosVisionnage const& info_vis) :m_saison{ info_vis.m_saison }, m_numero{ info_vis .m_NumeroEpisode} { ajouter_SequenceVisionnage(info_vis); };
    Idem pour le numéro de la saison, c'est info_vis qui a l'information :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Episode::Episode(InfosVisionnage& info_vis) :m_saison{ info_vis.m_saison }, m_numero{ info_vis.m_NumeroEpisode } { m_saison.m_numero = info_vis.m_NumeroSaison; ajouter_SequenceVisionnage(info_vis); }
    Après, le code suivant dans "Saison::initialiser_Fichier" fout la merde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if (int j = std::stoi(nomFichier))
    {
        m_numero = j;
        initialiser_Resume(cheminFichier);
        return;
    }
    Attention :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void Saison::Print()
    {
        Print_Header();
    ...
        for (auto& episode : m_liste_episodes)
        {
            episode.second->Print();
        }
    ...
    }

  14. #1014
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    785
    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 : 785
    Par défaut
    Ok !

    J'ai oublié tous ou rein !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Episode(InfosVisionnage const& info_vis) :m_saison{ info_vis.m_saison }, m_numero{ info_vis .m_NumeroEpisode} { ajouter_SequenceVisionnage(info_vis); };
    Ok ou pas ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Episode::Episode(InfosVisionnage& info_vis) :m_saison{ info_vis.m_saison }, m_numero{ info_vis.m_NumeroEpisode } { m_saison.m_numero = info_vis.m_NumeroSaison; ajouter_SequenceVisionnage(info_vis); }
    Comment faire ?

    ------------------------------------------

    l'expression doit être une valeur modifiable
    ???

  15. #1015
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 455
    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 455
    Par défaut
    J'ai oublié tous ou rein !!!
    ????

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Episode(InfosVisionnage const& info_vis) :m_saison{ info_vis.m_saison }, m_numero{ info_vis .m_NumeroEpisode} { ajouter_SequenceVisionnage(info_vis); };
    Ok ou pas ?
    C'est l'étape dans le code qui permet d'avoir le numéro de l'épisode correctement initialisé.
    Il n'y a qu'à modifier le contenu de "serie.h"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Episode::Episode(InfosVisionnage& info_vis) :m_saison{ info_vis.m_saison }, m_numero{ info_vis.m_NumeroEpisode } { m_saison.m_numero = info_vis.m_NumeroSaison; ajouter_SequenceVisionnage(info_vis); }
    C'est l'étape du code qui permet de numéroter les saisons.
    Comme il faut des informations sur les champs de la classe Saison, vous ne pouvez pas laisser l'implémentation de ce constructeur dans le fichier "serie.h".
    Vous devez transférer cette implémentation dans "serie.cpp". (D'où le "Episode::" en début de ligne).

    Vous allez avoir une erreur de compilation que vous devriez être capable de résoudre avec le mot clé "mutable".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct Saison
    {
    ...
        mutable int m_numero{ -1 };
    ...
    }

  16. #1016
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    785
    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 : 785
    Par défaut
    https://github.com/laurentbouleau/Exemple : Décembre 02 (06/12/2024)
    J'en ai marre !!!

    Je suis fatigué : COVID !!!

  17. #1017
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    785
    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 : 785
    Par défaut
    Nom : Capture d’écran 2024-12-06 135558.png
Affichages : 80
Taille : 131,0 Ko

  18. #1018
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 455
    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 455
    Par défaut
    Vous devez avoir les .h et les .cpp cohérent.

    Toutes les déclarations de fonctions dans le .h.
    Les signatures des fonctions entre la déclaration et la définition doivent être les mêmes.
    N'avoir qu'une déclaration dans l'ensemble .h/.cpp.
    Donc, si la définition est dans le .h (fonction "inline") il ne doit pas avoir de définition dans le .cpp.

    Ici, votre fonction "Episode(const InfosVisionnage& info_vis)", c'est n'importe quoi.
    Vous avez 2 définitions, une dans le .h, une dans le .cpp, et leur signature ne sont pas les mêmes :

    Donc, dans "serie.h" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct Episode
    {
    ...
        Episode(const InfosVisionnage& info_vis);
    ...
    }
    Dans "serie.cpp" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Episode::Episode(const InfosVisionnage& info_vis) :m_saison{ info_vis.m_saison }, m_numero{ info_vis.m_NumeroEpisode }
    {
        m_saison.m_numero = info_vis.m_NumeroSaison;
        ajouter_SequenceVisionnage(info_vis);
    }
    En regardant mes réponse, je vous ai vraisemblablement induit en erreur, en faisant plusieurs modifications en même temps.

    Attention :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
                            Saison saison(entry_serie, serie);
                            for (const auto& entry_saison : fs::directory_iterator(entry_serie))
                            {
                                if (entry_saison.is_regular_file())
                                {
                                    saison.initialiser_Fichier(entry_saison);
                                }
                            }
                            serie.saisons.push_back(saison);
    Ici, vous utilisez la même référence d'objet => tous vos objet Episode référence le même objet Saison, quelque soit la saison de l'épisode.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    serie.saisons.push_back({ entry_serie, serie });
    auto& saison = serie.saisons.back();
    for (const auto& entry_saison : fs::directory_iterator(entry_serie))
    {
        if (entry_saison.is_regular_file())
        {
            saison.initialiser_Fichier(entry_saison);
        }
    }

  19. #1019
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    785
    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 : 785
    Par défaut
    https://github.com/laurentbouleau/Exemple : Décembre 03 (07/12/2024)

    Je suis crevé !!!

    Nom : Capture d’écran 2024-12-07 225836.png
Affichages : 74
Taille : 46,1 Ko

  20. #1020
    Membre éclairé Avatar de Laurent_B_
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2021
    Messages
    785
    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 : 785
    Par défaut
    https://github.com/laurentbouleau/Exemple : Décembre 04 (09/12/2024)

    serie.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
    void SequenceVisionnage::Print(int numero_sequence) const
    {
        // Header
        //Print_Header();
        std::wstring wstr;
        std::wstring chiffre_str{};
        std::wstring duree_str;
        long chiffre = Print_Titre_chiffre(numero_sequence);
        if (numero_sequence == 1)
        {
            chiffre_str = std::to_wstring(m_episode.m_saison.m_numero) + m_keyColor[1] + L'x' + m_valuesColor + std::to_wstring(m_episode.m_numero) + m_keyColor[1] + L" : " + m_valuesColor;
    
            //chiffre_str = std::to_wstring(m_episode.m_saison.m_numero) + m_keyColor[1] + L'x' + m_valuesColor + std::to_wstring(m_NumeroEpisode) + m_keyColor[1] + L" : " + m_valuesColor;
            //chiffre_str = std::to_wstring(m_NumeroSaison) + m_keyColor[1] + L'x' + m_valuesColor + std::to_wstring(m_episode.m_NumeroEpisode) + m_keyColor[1] + L" : " + m_valuesColor;
            //m_NumeroEpisode++;
        }
    ...
    Et :
    serie.h :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    struct Saison
    {
    ...
        mutable int m_numero{-1};
    ...
    };
    Pourquoi ???

    15/02/2024 : qsdfghjklm (4)
    4x1 : La phrase...
    Comment faire pour :
    • chiffre_str = std::to_wstring(m_episode.m_saison.m_numero) + m_keyColor[1] + L'x' + m_valuesColor + std::to_wstring(m_episode.m_numero) + m_keyColor[1] + L" : " + m_valuesColor;
    • mutable int m_numero{-1};


    Merci

+ 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