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. #561
    Nouveau Candidat au Club Avatar de Laurent_B_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 386
    Points : 0
    Points
    0
    Par défaut
    https://github.com/laurentbouleau/Exemple : Mars 10

    Ok ! Noté

    Merci

  2. #562
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Votre affichage de la saison 2 n'est pas "cohérent" parce que vous cherchez à initialiser le champ "episode" à 2 endroits différents dans le constructeur d'Episode.
    Il y a la partie "simple", de mon "cru", qui prend les informations dans le nom du fichier, au début du constructeur.
    Mais vous avez maintenu votre code peu fiable dans la seconde partie du constructeur.
    Résultat, l'affichage de la seconde saison déconne.
    Pourquoi ne pas supprimer tout ce code fragile et le remplacer par quelques lignes simples, qui ne font pas doublon avec la première partie ?
    Utilisez le débugueur pour voir concrètement le problème du champ "episode" écrasé par votre code superfétatoire.

  3. #563
    Nouveau Candidat au Club Avatar de Laurent_B_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 386
    Points : 0
    Points
    0
    Par défaut
    https://github.com/laurentbouleau/Exemple : Mars 11

    Ok ou pas ?

    Avec :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    struct Saison_Episode
    {
        friend struct Episode;
        std::wstring titre;
        std::wstring deux_points;
        std::wstring sous_titre;
        unsigned short int numero{ 1 };
    };
    et :
    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
    void Episode::Print()
    {
        if (affichage_Print_actif)
        {
            std::wstring wstr;
            bool chiffre_et_point_ou_pas = Print_Titre_chiffre_et_point_ou_pas(episode);
            if (chiffre_et_point_ou_pas)
            {
                wstr = std::to_wstring(saison);
                wstr += keyColor[1] + L'x' + valuesColor;
                wstr += std::to_wstring(episode);
                wstr += keyColor[1] + L" : " + valuesColor;
            }
            wstr += keyColor[1] + titre + valuesColor;
            if (deux_points != L"")
                wstr += deux_points + keyColor[1] + sous_titre + valuesColor;
            if (fichier_pas_zero)
            {
                saison_episode.numero = 1;
                wstr += keyColor[1] + L" (" + valuesColor + std::to_wstring(duree_en_seconde / 60) + keyColor[1] + min + L')' + valuesColor;
            }           
            else
            {
                saison_episode.numero++;
                wstr += keyColor[1] + L" [" + valuesColor + std::to_wstring(saison_episode.numero) + keyColor[1] + L']' + valuesColor;
            }
            wstr += keyColor[1] + L" : " + valuesColor;
            wstr += Print_Date_ou_Dates(dates_de_diffusion);
     
            // phrases
            if (fichier_pas_zero)//titre != L"")
                wstr += L"\r\n" + phrases;
            std::wcout << wstr << std::endl;
        }
    }

  4. #564
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Ok ou pas ?
    Non, vous ne simplifiez pas votre code.
    Vous gardez des bouts de code avec des noms de variables complètement abscons. (exemple, la double détermination du numéro d'épisode : dans le nom du fichier/dans le contenu du fichier)
    Vous vous noyez dans votre propre difficulté.
    SIMPLIFIEZ !!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    struct Saison_Episode
    {
        friend struct Episode;
        std::wstring titre;
        std::wstring deux_points;
        std::wstring sous_titre;
        unsigned short int numero{ 1 };
    };
    "Saison_Episode", ça veut dire quoi ?
    A part une association entre une saison et un épisode, je vois pas.
    Si c'était juste une association, il n'y aurait que 2 champs, une référence vers une saison et une référence vers un épisode, ce n'est pas le cas ici.

    Donc c'est quoi le rôle de "Saison_Episode", ET NOMMEZ LA EN FONCTION DE CE ROLE !!!
    "friend" ? vraiment ? vous n'avez pas encore à vous soucier des problèmes de visibilité/abstraction, ce "friend" n'a rien à faire là pour l'instant.
    "titre" et "sous_titre" sont des noms de champs avec un "sens", mais "deux_points", c'est quoi le rapport ???
    "numero", c'est ambigu, car "Saison_Episode", on ne sait pas ce que sait.

    Moi, ce que je comprends, c'est qu'il y a la notion de saison, d'épisode et de diffusion d'un épisode, et je ne vous rien dans votre modèle qui encapsule une diffusion.

    Avant d'essayer d'afficher des trucs avec 10 champs avec des noms à coucher dehors, commencez par "modéliser" les types d'objets de votre problématique.

    Comme, par exemple :
    Une "Serie" qui contient un ensemble de saisons, chaque saison contenant un ensemble d'épisodes, chaque épisode contenant un ensemble de diffusions.

    C'est après, et avec le minimum de complexité que vous essayeriez de construire une fonction "Print".

    "fichier_pas-zero", "Print_Titre_chiffre_et_point_ou_pas", "affichage_Print_actif" sont des exemples de ces champs/fonctions qui n'ont pas de noms qui correspondent à leur "utilité" ou sont totalement inutile.
    SIMPLIFIEZ !!!

    (utilisez la fonction tamplate "wstring_format" pour rendre votre code plus lisible, avec des constantes de formatage explicites, et pas truffé de concaténation de chaines redondantes )

  5. #565
    Nouveau Candidat au Club Avatar de Laurent_B_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 386
    Points : 0
    Points
    0
    Par défaut
    Bonjour,

    L'aphasique !!!
    Numero ===> 2 et 3
    Nom : Capture d’écran 2024-03-25 131250.png
Affichages : 115
Taille : 67,4 Ko
    Quoi faire ?

    "fichier_pas-zero", "Print_Titre_chiffre_et_point_ou_pas", "affichage_Print_actif" sont des exemples de ces champs/fonctions qui n'ont pas de noms qui correspondent à leur "utilité" ou sont totalement inutile.
    SIMPLIFIEZ !!!
    Comment faire ? Les noms ? Et les auxiliaires de vie ! Elles comprennent pas !!!
    Et vous : les noms ? Expliqué-moi ? (fichier_pas-zero, Print_Titre_chiffre_et_point_ou_pas, affichage_Print_actif...) !

    Merci beaucoup

  6. #566
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            if (fichier_pas_zero)
            {
                saison_episode.numero = 1;
                wstr += keyColor[1] + L" (" + valuesColor + std::to_wstring(duree_en_seconde / 60) + keyColor[1] + min + L')' + valuesColor;
            }
                
            else
            {
                saison_episode.numero++;
                wstr += keyColor[1] + L" [" + valuesColor + std::to_wstring(saison_episode.numero) + keyColor[1] + L']' + valuesColor;
            }
    L'affichage que vous avez entouré en rouge provient du passage dans la partie "else" du code qui précède.
    Donc parce que le champ "fichier_pas_zero" est à Faux/false.
    Malgré le nom du champ assez obscure, Visual Studio nous indique que ce champ n'est initialisé que dans le constructeur d'un Episode, quand le fichier ne contient aucune donnée.

    On est dans le cas où il y a, dans le répertoire "Azertyuiop - qsdfghjklm.[2021-2023 Netflix].Manga/2021-11-02/", les fichiers "1x1.2021-07-16_08-01_.txt", "1x1.2024-03-22_.txt" et "1x1.2024-03-24.txt", en plus d'autres ne commençant pas "1x1." (donc pas le même épisode).
    De ce que j'essaye de comprendre de votre nomenclature de fichiers, c'est 3 fichiers commençant par "1x1." représentent des diffusions de l'épisode 1 de la saison 1.
    Les fichiers "1x1.2024-03-22_.txt" et "1x1.2024-03-24.txt" sont vides, mais comme cela semble être des (re)diffusions, le contenu aurait été le même que celui du "1x1.2021-07-16_08-01_.txt".
    Techniquement, ces 3 fichiers auraient pu être "fusionnés" en un fichier nommé "1x1.2021-07-16_08-01_2024-03-22_24.txt" (si je ne me trompe pas dans ce "calcul").

    Si je ne me trompe pas sur cette nomenclature, vous ne pouvez plus juste vous servir d'un chemin vers un fichier pour créer un épisode, car, ici, il y a 3 fichiers pour le même épisode.
    Donc, quand vous énumérez les fichiers d'un répertoire "saison" vous devriez stocker les informations dans une structure de données adaptées, comme un dictionnaire, avec comme clé : le numéro de l'épisode.
    Et une fois tous les fichiers du répertoire "saison" ont été énumérés, utilisez la structure de données contenant les informations pour créer chaque épisode avec toutes les informations qui le concerne.

    Et donc, pas besoin d'un champ "fichier_pas_zero" mystérieux ni d'une horrible variable globale "saison_episode" qui récupèrent n'importe quoi, n'importe comment, n'importe quand.

    FAITES SIMPLE !!!!

    Si vous ne pouvez pas justifier un champ ou une variable, c'est qu'ils sont en trop, et on dégage.
    Donc, vous dégagez fissa "fichier_pas_zero" et autres "saison_episode", à moins que vous sachiez précisément à quoi ils servent.

    Et vous : les noms ? Expliqué-moi ? (fichier_pas-zero, Print_Titre_chiffre_et_point_ou_pas, affichage_Print_actif...) !
    C'est vous qui devriez être à même de nous expliquer à quoi elles servent.
    "fichier_pas_zero", ça indique juste si un fichier était vide mais n'a aucun sens au niveau de l'épisode, dont les informations peuvent venir de plusieurs fichiers, donc ça ne sert à rien !
    "Print_Titre_chiffre_et_point_ou_pas" "sert" à savoir s'il faut afficher la partie "numéro de saison x numéro d'épisode : " en préfixe d'un affichage, mais pourquoi ce n'est pas systématiquement affiché ? Donc s'il n'y a pas de raison, on dégage !!!
    Dans les faits, ça teste si le numéro d'épisode est bien renseigné, donc on cache une erreur de programmation en amont avec du code supplémentaire qui complexifie tout. NON, c'est le problème EN AMONT qu'il faut régler et pas le cacher sous le tapis.
    J'ai l'impression que beaucoup de complexité est là pour "patcher" des erreurs de programmation en amont.
    "affichage_Print_actif" : comme déjà indiqué plusieurs fois, c'est un champ complètement inutile qui, en plus, est utilisé à un endroit complètement illogique, ON DEGAGE.

    P.S. Utilisez "wstring_format" (avec des formats "const wstring") et les expressions régulières pour simplifier votre code !!!

  7. #567
    Nouveau Candidat au Club Avatar de Laurent_B_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 386
    Points : 0
    Points
    0
    Par défaut
    Techniquement, ces 3 fichiers auraient pu être "fusionnés" en un fichier nommé "1x1.2021-07-16_08-01_2024-03-22_24.txt" (si je ne me trompe pas dans ce "calcul").
    Ben non !!!
    Exemple :
    1x1.2021-07-16_08-01_.txt
    1. La phrase : verbre
    148Min
    À la mort du duc d'Halstead, son second fils hérite de tout son patrimoine : son titre, sa maison et ses terres, mais aussi une montagne d'ennuis.
    1x1.2024-03-22_.txt
    L""
    1x1.2024-03-24.txt
    L""
    C'est comme sait !!!

    Et :
    1x1.2021-07-16_08-01_.txt
    ou
    1x1.2024-03-22_.txt
    égal :
    pas-à-pas
    et/ou
    préquel ou pas !
    et/ou
    préquel

    ???

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

    Nom : Capture d’écran 2024-03-25 221408.png
Affichages : 107
Taille : 16,1 Ko
    ??? Erreur ou pas ou...

    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
    void Episode::Print()
    {
        std::wstring wstr;
        bool chiffre_et_point_ou_pas = Print_Titre_chiffre_et_point_ou_pas(episode);
        if (chiffre_et_point_ou_pas)
        {
            wstr = std::to_wstring(saison) + keyColor[1] + L'x' + valuesColor + std::to_wstring(episode) + keyColor[1] + L" : " + valuesColor;
        }
        wstr += keyColor[1] + titre + valuesColor;
        if (deux_points != L"")
            wstr += deux_points + keyColor[1] + sous_titre + valuesColor;
        if (numero == 1)
        {
            wstr += keyColor[1] + L" (" + valuesColor + std::to_wstring(duree_en_seconde / 60) + keyColor[1] + min + L')' + valuesColor;
        }
        else
        {
            wstr += keyColor[1] + L" [" + valuesColor + std::to_wstring(numero) + keyColor[1] + L']' + valuesColor;
            numero++;
        }
        wstr += keyColor[1] + L" : " + valuesColor;
        wstr += Print_Date_ou_Dates(dates_de_diffusion);
    
        // phrases
        if (numero == 1)//titre != L"")
            wstr += L"\r\n" + phrases;
        std::wcout << wstr << std::endl;
    }
    ---------------

    "affichage_Print_actif" : comme déjà indiqué plusieurs fois, c'est un champ complètement inutile qui, en plus, est utilisé à un endroit complètement illogique, ON DEGAGE.
    Ok !

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

    https://github.com/laurentbouleau/Exemple : Mars 12

    Merci vraiment

  8. #568
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Ben non !!!
    OK alors donnez-nous l'affichage attendu si vous avez ces 3 fichiers.
    Quel seraient les différences si vous n'aviez qu'un fichier "1x1.2021-07-16_08-01_2024-03-22_24_.txt" avec le même contenu que "1x1.2021-07-16_08-01_.txt" ?

    Que signifie "concrètement" ces lignes "1x1 : [2] : 22/03/2024" et "1x1 : [2] : 24/03/2024" dans la copie d'écran de votre dernier post ?

    L'apparition des chaines "[pas-à-pas]", "[préquel ou pas !]" ou encore "[préquel]" me semblent complètement arbitraires.
    Pouvez-vous expliquer concrètement ce que cela veut dire et quand elles doivent apparaitre dans l'affichage ?

    ??? Erreur ou pas ou...
    C'est vous qui savez à quoi devrait ressembler l'affichage à la fin, non ?
    Qu'est-ce qui n'est pas conforme à vos attentes dans cette copie d'écran ?

    Vous avez remplacé la constante globale "saison_episode" par le champ "numero", c'est très bien.
    (vous vous en servez encore de "saison_episode" ligne 321 de serie.cpp, VIREZ-MOI CA !!!)
    Mais c'est quoi la différence entre le champ "episode" et le champ "numero" ?
    Pour le coup, "numero" semble un bien meilleur nom qu'"episode".
    N'ayez pas des champs en trop, ça complexifie inutilement le code.

    Dans le nom de fichier "1x1.2021-07-16_08-01_.txt", le deuxième 1 (entre le "x" et le "."), c'est bien le numéro de l'épisode, non ?
    Par construction, il est obligatoire dans le nom du fichier mais vous vous obstinez aussi à vouloir le lire dans la première ligne du fichier, mais il n'apparait pas systématique.
    Pourquoi vous prendre la tête avec le contenu du fichier alors que le nom suffit ?

    Si l'on supprime le champ "episode" pour le remplacer par le champ "numero", vous pouvez simplement remplacer la ligne 208 de serie.cpp :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    episode = std::stoi(match[filename_numero_episode_index]);
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    numero = std::stoi(match[filename_numero_episode_index]);
    Tout le reste du code qui manipule "numero" en écriture devrait disparaitre ou juste vérifier que le contenu du fichier est cohérent avec le nom du fichier.
    Et le "return" ligne 217 de serie.cpp, c'est une connerie, faites un effort pour rendre simple votre code.

    Vous avez commencé à utiliser les expressions régulières mais de manières assez maladroites, ce qui rend le code verbeux :
    Voici une proposition de simplification du constructeur d'épisode (en faisant l'assertion qu'un semble chemin de fichier permet de construire correctement un objet "Episode") :
    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
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    Episode::Episode(fs::path const& cheminFichier)
    {
        // ([[:digit:]]+)x([[:digit:]]{1,3})\\.(((([[:digit:]]{4})-([[:digit:]]{2})-([[:digit:]]{2})|([[:digit:]]{2})-([[:digit:]]{2})|([[:digit:]]{2})))(_?))+)(\\s(.+))?
        const std::wstring numero_saison_format = L"([[:digit:]]{1,2})"; // saison
        const std::wstring sep_numero_saison = L"x"; // x
        const std::wstring numero_episode_format = L"([[:digit:]]{1,3})"; // episode
        const std::wstring sep_episode_saison = L"\\."; //.
    
        const std::wstring date_year_month_day_format = L"([[:digit:]]{4})-([[:digit:]]{2})-([[:digit:]]{2})";
        const std::wstring date_month_day_format = L"([[:digit:]]{2})-([[:digit:]]{2})";
        const std::wstring date_day_format = L"([[:digit:]]{2})";
        const std::wstring stream_format = L"(\\s(.+))?";
        const std::wstring dates_format = L"((" + date_year_month_day_format + L"|" + date_month_day_format + L"|" + date_day_format + L")(_?))";
    
        const int dates_full_match_index = 0;
        const int dates_date_year_month_day_year_index = dates_full_match_index + 3;
        const int dates_date_year_month_day_month_index = dates_date_year_month_day_year_index + 1;
        const int dates_date_year_month_day_day_index = dates_date_year_month_day_month_index + 1;
        const int dates_date_month_day_month_index = dates_date_year_month_day_day_index + 1;
        const int dates_date_month_day_day_index = dates_date_month_day_month_index + 1;
        const int dates_date_day_day_index = dates_date_month_day_day_index + 1;
        const int dates_someFlag_index = dates_date_day_day_index + 2;
    
        const std::wregex filename_format_rg{ numero_saison_format + sep_numero_saison + numero_episode_format + sep_episode_saison + L"(" + dates_format + L"+)" + stream_format };
    
        const int filename_full_match_index = 0;
        const int filename_numero_saison_index = filename_full_match_index + 1;
        const int filename_numero_episode_index = filename_numero_saison_index + 1;
        const int filename_dates_index = filename_numero_episode_index + 1;
        const int filename_date_year_month_day_year_index = filename_dates_index + 2;
        const int filename_date_year_month_day_month_index = filename_date_year_month_day_year_index + 1;
        const int filename_date_year_month_day_day_index = filename_date_year_month_day_month_index + 1;
        const int filename_date_month_day_month_index = filename_date_year_month_day_day_index + 1;
        const int filename_date_month_day_day_index = filename_date_month_day_month_index + 1;
        const int filename_date_day_day_index = filename_date_month_day_day_index + 1;
        const int filename_someFlag_index = filename_date_day_day_index + 2;
        const int filename_stream_index = filename_someFlag_index + 2;
    
    
        auto nomFichier = cheminFichier.filename().wstring();
    
        assert(nomFichier.length() > 0 && L"Nom de fichier Episode vide");
    
        auto stem = cheminFichier.stem().wstring();
        assert((stem.length() > 9) && L"Nom de fichier Episode trop court pour avoir au moins une date");
    
        assert(std::isdigit(stem[0]) && L"Nom de fichier Episode ne commençant pas par un nombre");
        saison = std::stoi(stem);
        assert((saison <= 1000) && L"x <= 1000 !!!");
        assert((stem.find(L"x", 0) != std::wstring::npos) && L"Saison::afficher_Episode() :  x !!!");
        assert(std::regex_match(stem, filename_format_rg) && L"Le nom du fichier n'est pas valide");
    
        std::wsmatch match;
        auto str = stem;
        std::regex_match(str, match, filename_format_rg);
    
        std::wsmatch dates_match;
        auto dates_str = match[filename_dates_index].str();
        while (std::regex_search(dates_str, dates_match, std::wregex{ dates_format }))
        {
            if (dates_match[dates_date_year_month_day_year_index].matched)
            {
                auto year = std::stoi(dates_match[dates_date_year_month_day_year_index]);
                auto month = std::stoi(dates_match[dates_date_year_month_day_month_index]);
                auto day = std::stoi(dates_match[dates_date_year_month_day_day_index]);
    
                assert(checkyear(year));
                assert(checkmonth(month));
                assert(checkday(month, day, year));
    
                DateRecord dr{ {0,0,0,day,month - 1,year - 1900} };
    
                dates_de_diffusion.emplace_back(dr);
            }
            else if (dates_match[dates_date_month_day_month_index].matched)
            {
                assert(dates_de_diffusion.size() > 0 && L"Utilisation d'un format mois-jour sans avoir d'année déduite.");
    
                auto month = std::stoi(dates_match[dates_date_month_day_month_index]);
                auto day = std::stoi(dates_match[dates_date_month_day_day_index]);
    
                auto lastDateRecord = dates_de_diffusion.back();
                auto last_year = lastDateRecord.date.tm_year + 1900;
    
                assert(checkmonth(month));
                assert(checkday(month, day, last_year));
    
                DateRecord dr{ {0,0,0,day,month - 1,last_year - 1900} };
    
                dates_de_diffusion.emplace_back(dr);
            }
            else if (dates_match[dates_date_day_day_index].matched)
            {
                assert(dates_de_diffusion.size() > 0 && L"Utilisation d'un format jour sans avoir de mois et d'années déduits.");
    
                auto day = std::stoi(dates_match[dates_date_day_day_index]);
    
                auto lastDateRecord = dates_de_diffusion.back();
                auto last_year = lastDateRecord.date.tm_year + 1900;
                auto last_month = lastDateRecord.date.tm_mon + 1;
    
                assert(checkday(last_month, day, last_year));
    
                DateRecord dr{ {0,0,0,day,last_month - 1,last_year - 1900} };
    
                dates_de_diffusion.emplace_back(dr);
            }
            else
            {
                assert(true && L"format de date d'épisode inconnu.");
            }
    
            if (dates_match[dates_someFlag_index].matched)
            {
                dates_de_diffusion.back().someFlag = true;
            }
    
            dates_str = dates_match.suffix().str();
        }
    
        if (match[filename_stream_index].matched)
        {
            streaming = match[filename_stream_index];
        }
    
        numero = std::stoi(match[filename_numero_episode_index]);
        std::vector<std::wstring> t = lire_fichierTxt(cheminFichier.wstring(), { L"\n" }, false);
    
        const std::wregex first_line_format_rg{ L"([[:digit:]]*)(\\.?)(.+?) ?((\\-|:) (.+))?" };
    
        std::wsmatch first_line_match;
        if (std::regex_match(t[0], first_line_match, first_line_format_rg))
        {
            if (first_line_match[1].matched && first_line_match[1].length()>0)
                assert(numero == std::stoi(first_line_match[1]) && L"Le numero d'épisode dans le nom du fichier et dans le fichier ne correspondent pas.");
    
            if (first_line_match[3].matched)
                titre = first_line_match[3];
    
            if (first_line_match[6].matched)
                sous_titre = first_line_match[6];
        }
        else
        {
            titre = t[0];
        }
    
        if (t.size() > 1)
        {
            initialiser_duree(t[1]);
            for (auto j = 2; j < t.size(); j++)
            {
                if (j > 2 && phrases.back() != L' ') {
                    phrases += L" ";
                }
                phrases += t[j];
            }
        }
    }
    Et votre "Episode:: Print()" me semble toujours trop complexe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    void Episode::Print()
    {
        const std::wstring print_format = L"%d" + keyColor[1] + L'x' + valuesColor + L"%d" + keyColor[1] + L" : " + valuesColor + keyColor[1] + L"%s" + valuesColor + L"%s" + keyColor[1] + L" (" + valuesColor + L"%d" + keyColor[1] + L" min)" + valuesColor + keyColor[1] + L" : " + valuesColor + L"%s";
     
        auto sous_titre_str = sous_titre.length() > 0 ? L" : " + keyColor[1] + sous_titre.c_str() + valuesColor : L"";
     
        std::wstring res = wstring_format(print_format, saison, numero, titre.c_str(), sous_titre_str.c_str(), duree_en_seconde / 60, Print_Date_ou_Dates(dates_de_diffusion).c_str());
     
        if (phrases.length() > 0)
            res += L"\r\n" + phrases;
     
        std::wcout << res << std::endl;
    }
    Vous pouvez séparer les calculs comme je l'ai fait pour le "sous_titre" pour rendre le code encore plus lisible, sans ces satanées "+=" dans tous les coins avec des "if" abscons.

  9. #569
    Nouveau Candidat au Club Avatar de Laurent_B_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 386
    Points : 0
    Points
    0
    Par défaut
    Bonjour,

    OK alors donnez-nous l'affichage attendu si vous avez ces 3 fichiers.
    Quel seraient les différences si vous n'aviez qu'un fichier "1x1.2021-07-16_08-01_2024-03-22_24_.txt" avec le même contenu que "1x1.2021-07-16_08-01_.txt" ?
    C'est le même épisode que j'ai vu plusieurs fois. Donc, on ne peux pas fusionner.

    Que signifie "concrètement" ces lignes "1x1 : [2] : 22/03/2024" et "1x1 : [2] : 24/03/2024" dans la copie d'écran de votre dernier post ?
    Normalement, ça devrait être [2] et [3] car c'est la 2ème et la 3ème fois que j'ai regardé cet épisode.

    L'apparition des chaines "[pas-à-pas]", "[préquel ou pas !]" ou encore "[préquel]" me semblent complètement arbitraires.
    Pouvez-vous expliquer concrètement ce que cela veut dire et quand elles doivent apparaitre dans l'affichage ?
    Je me rends compte que le mot "préquel" ne signifie pas ce que je pensais, donc je vais le changer.
    [pas-à-pas] veut dire que j'ai visionné l'épisode en plusieurs fois, de la date 1 à la date 2.
    [préquel ou pas !] veut dire que j'ai commencé à visionner l'épisode, mais que j'ai abandonné (trop dur) – Je vais remplacer par "stop ou pas". [1x1...]
    [préquel] veut dire que j'ai abandonné le visionnage de l'épisode, mais que je vais peut-être le reprendre – Je vais remplacer par "à suivre" [1x2..., 1x3... etc]

    (Réponses élaborées avec l'orthophoniste)

    Merci beaucoup

  10. #570
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Ah, Ok, ce n'est pas, ou pas que des diffusions, c'est plutôt ou aussi des visionnages, c'est ça ?

    Ou est-ce que les fichiers "non vide" sont des diffusions et les fichiers vides sont des visionnages ?

    "dates_de_diffusion" est un champ et aussi un nom de paramètre, s'il n'y pas de "date de diffusion" mais que des dates de visionnages, vous devriez renommer ces champs et paramètres en "dates_de_visionnage", par exemple.
    S'il y a les 2 notions, des dates de diffusion et des dates de visionnage, il ne faudrait pas les mélanger.

    OK alors donnez-nous l'affichage attendu si vous avez ces 3 fichiers.
    Quel seraient les différences si vous n'aviez qu'un fichier "1x1.2021-07-16_08-01_2024-03-22_24_.txt" avec le même contenu que "1x1.2021-07-16_08-01_.txt" ?
    C'est le même épisode que j'ai vu plusieurs fois. Donc, on ne peux pas fusionner.
    Ca veut dire qu'on n'a pas que des dates de visionnages dans les noms de fichiers, sinon, on pourrait les fusionner sans problème, on est d'accord ?

    Si vous pouvez nous donner l'affichage attendu si on a ces 3 fichiers : ("1x1.2021-07-16_08-01_.txt","1x1.2024-03-22_.txt" et "1x1.2024-03-24.txt"), ça pourrait simplifier notre compréhension de vos problèmes.

    Que signifie "concrètement" ces lignes "1x1 : [2] : 22/03/2024" et "1x1 : [2] : 24/03/2024" dans la copie d'écran de votre dernier post ?
    Normalement, ça devrait être [2] et [3] car c'est la 2ème et la 3ème fois que j'ai regardé cet épisode.
    Ok, ce n'est donc pas un "épisode" qu'on affiche (avec ces dates de diffusion) mais un "épisode" (avec des dates de diffusions ou pas ?) et ses dates de visionnages.
    Vous ne devriez donc pas créer un "Episode" pour chacun des fichiers correspondants, mais une date de visionnage que vous stockeriez dans l'objet Episode correspondant.

    Sauf erreur, vous ne pouvez pas savoir à l'avance si le fichier correspond à une ou plusieurs diffusions ou s'il correspond à un ou plusieurs visionnages, juste avec son nom, si ?
    Si c'est le cas, vous ne pouvez pas construire automatiquement un Episode pour chaque fichier qui respect "le format" que vous nous avez donné.
    Il faut modifier le code qui scanne les répertoires pour qu'il analyse le contenu du fichier avant de demander la création d'un Episode, ou la création d'un ensemble de dates de visionnage d'un épisode.

    Normalement, ça devrait être [2] et [3]
    Heu, il serait où le premier visionnage dans ce cas ???
    L'ordre n'est pas une information "intrinsèque" (interne) d'une date de diffusion.
    Si vous stockez les dates de visionnage dans un épisode chronologiquement, dans un objet "Episode", son numéro d'ordre chronologique sera automatiquement fourni par l'objet "Episode" qui connait l'ordre du visionnage, pas la date elle-même.
    Ne cherchez pas à connaitre l'ordre du visionnage au moment de la création de la date de visionnage, mais uniquement lors de l'affichage de l'Episode, qui connait TOUTES les dates de visionnage et leur ordre chronologique.

    [pas-à-pas] veut dire que j'ai visionné l'épisode en plusieurs fois, de la date 1 à la date 2.
    [préquel ou pas !] veut dire que j'ai commencé à visionner l'épisode, mais que j'ai abandonné (trop dur) – Je vais remplacer par "stop ou pas". [1x1...]
    [préquel] veut dire que j'ai abandonné le visionnage de l'épisode, mais que je vais peut-être le reprendre – Je vais remplacer par "à suivre" [1x2..., 1x3... etc]
    Tout ceci est lié à des dates de visionnages, pas à des dates de diffusion.
    Si les dates de diffusion "n'existent pas" et qu'il n'y a que des dates de visionnage, ces dates proviennent de plusieurs fichiers et vous ne regroupez pas les dates de visionnage provenant de plusieurs fichiers dans un seul "Episode", donc difficile de pouvoir "correctement" faire une analyse sur l'ensemble des visionnages.

    Y a-t-il une notion de "séquence de visionnage" qui permet de "voir" un même épisode, une fois en une fois (séquence d'1 date de visionnage) et pour le même épisode d'avoir une autre séquence de "date de visionnage" sur plusieurs jours, par exemple ?
    Si oui, il faudra implémenter ce concept de "séquence de visionnage" dans votre conception.

  11. #571
    Nouveau Candidat au Club Avatar de Laurent_B_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 386
    Points : 0
    Points
    0
    Par défaut
    Bonsoir,

    Compliqué a dire ! Et, oui, c'est vraiment !

    [pas-à-pas] veut dire que j'ai visionné l'épisode en plusieurs fois, de la date 1 à la date 2.
    Exemple : [pas-à-pas]
    Azertyuiop - qsdfghjklm.[2021-2023 Netflix].Manga/2021-11-02/
    1x1.2021-07-16_08-01_.txt
    1. La phrase : verbre
    148Min
    À la mort du duc d'Halstead, son second fils hérite de tout son patrimoine : son titre, sa maison et ses terres, mais aussi une montagne d'ennuis.
    1x2.2021-07-18_18_18 France 5.txt
    2. Tackle Tommy: woo woo
    63 min
    Les aristos et leur garde-chasse traquent une nouvelle sorte de proie. Susie embauche de l'aide pour faire le ménage, et le manoir d'Halstead reçoit une sacrée visite.
    Better Call Saul.[2015-2022]/2015-02-09
    1x03.2024-02-02_02.txt
    3. Nacho
    47 min
    Pour blanchir son nouveau client et sauver sa peau par la même occasion, Jimmy doit orienter la police vers une autre piste, tout aussi crédible.
    Ok ?

    Merci d'avance

  12. #572
    Nouveau Candidat au Club Avatar de Laurent_B_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 386
    Points : 0
    Points
    0
    Par défaut
    Après : l'orthophoniste et moi : Mardi 02/04/2024 !

    Merci

  13. #573
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    On va commencer à attaquer dans le dur et pas juste "se battre" contre la syntaxe du C++.
    Il faut commencer à prendre du recul pour avoir une conception qui tienne un peu la route.
    Pour cela, il faut commencer par l'expression du besoin : "Pourquoi avez-vous besoin de ce programme ?".
    C'est important pour rester focus sur l'objectif.

    Sans ça, on (ceux qui essayent de vous aider) n'est un peu obliger de jouer aux astrologues et essayer de deviner vos objectifs.

    Si on comprend bien, l'arborescence des fichiers que votre programme "scanne", ce n'est que des "séquence de séances de visionnage" de films et de série.

    et un fichier "1x1.2021-07-16_08-01_2024-03-22_24_.txt" c'est UNE séquence de séances de visionnage (sur plus de 2 ans) alors que 3 fichiers : "1x1.2021-07-16_08-01_.txt", "1x1.2024-03-22_.txt" et "1x1.2024-03-24.txt" correspondent à 3 "séquences de séances de visionnage" du même épisode mais distinctes les une des autres (la première avec des séances qui s'étendent sur 15 jours, la 2ème séquence avec une ou plusieurs sessions de visionnage mais dans la même journée, idem pour la 3ème séquence à la 2ème).

    Une séquence de séances de visionnage, c'est la liste des dates où vous avez regardé un bout de l'épisode en reprenant à partir du moment de la fin de la session de visionnage d'avant, dans la même séquence.

    Il y a un fichier par séquence de séances de visionnage. Mais une séquence peut avoir plusieurs séances.
    Ok ???

    Si c'est bien le cas, la conception serait un peu différente :
    Une série contient des Saisons, des Saisons contiennent des Episodes, les épisodes contiennent plusieurs séquences de séances de visionnage, chaque séquence contient plusieurs séances de visionnage.
    C'est Ok pour vous comme conception ?

    Dans ce cas un fichier ne correspond pas à un épisode mais à une séquence de séances de visionnage.

    Donc le code ligne 613 à 629 de serie.cpp ci-après (numéros approximatifs car j'ai fais de modification pour présenter la version "simplifié" posté hier) :
    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
    if (
        (nomFichier[0] == L'1' || nomFichier[0] == L'2' || nomFichier[0] == L'3' || nomFichier[0] == L'4' || nomFichier[0] == L'5' || nomFichier[0] == L'6' || nomFichier[0] == L'7' || nomFichier[0] == L'8' || nomFichier[0] == L'9')
        && nomFichier[1] == L'x'
        )
    {
        Creer_Episode(cheminFichier);
        return;
    }
    if (
        (nomFichier[0] == L'1' || nomFichier[0] == L'2' || nomFichier[0] == L'3' || nomFichier[0] == L'4' || nomFichier[0] == L'5' || nomFichier[0] == L'6' || nomFichier[0] == L'7' || nomFichier[0] == L'8' || nomFichier[0] == L'9')
        && (std::isdigit(nomFichier[1]))
        && nomFichier[2] == L'x'
        )
    {
        Creer_Episode(cheminFichier);
        return;
    }
    (remarquez que l'utilisation d'une expression régulière pourrait éviter d'avoir 2 fois le même code et permettrait de faire un "if" bien plus simple et clair)

    On pourrait remplacer ce code avec un truc comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if(std::regex_match(nomFichier, std::wregex{L"([[:digit:]]{1,2})x(.)+"}))
    {
        SequenceVisionnage seq_vis{cheminFichier};
     
        if(m_liste_episodes.existe(seq_vis.numero_episode))
        {
            m_liste_episodes[seq_vis.numero_episode].AjouterSequenceVisionnage(seq_vis);
        }
        else
        {
            Creer_Episode(seq_vis);
        }
    }
    C'est un code qui ne compilera pas mais si :
    - vous créez la classe SequenceVisionnage avec un constructeur qui prend un nom de fichier et un champ "numero_episode" contenant le numéro de l'épisode donné dans le nom du fichier,
    - que vous ajoutez un champ "m_liste_episodes" dans la classe Saison capable de savoir si un épisode avec un numéro donné existe déjà (via sa fonction "existe"), d'accéder à l'épisode numéro X via l'opérateur "[]",
    - que vous ajoutiez à votre classe Episode la fonction "AjouterSequenceVisionnage"
    - et que "Creer_Episode" mette à jour le champ "m_liste_episodes" et prenant en entré un objet SequenceVisionnage.

    En implémentant ce qu'il faut dans ces fonctions, le code compilera et fera ce qu'il faut.
    Et le code n'est-il pas clair ainsi ?

    Posez des questions, SVP.

  14. #574
    Nouveau Candidat au Club Avatar de Laurent_B_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 386
    Points : 0
    Points
    0
    Par défaut
    Bonsoir,

    Je suis fatigué ! Demain ?

    Vendredi : 14h - 16h : Complexe René-Tys : La musculation (groupe handicap)

    Merci

  15. #575
    Nouveau Candidat au Club Avatar de Laurent_B_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 386
    Points : 0
    Points
    0
    Par défaut
    Bonsoir,

    et un fichier "1x1.2021-07-16_08-01_2024-03-22_24_.txt" c'est UNE séquence de séances de visionnage (sur plus de 2 ans)
    Pardon ? Ben, non !!!

    alors que 3 fichiers : "1x1.2021-07-16_08-01_.txt", "1x1.2024-03-22_.txt" et "1x1.2024-03-24.txt" correspondent à 3 "séquences de séances de visionnage" du même épisode mais distinctes les une des autres (la première avec des séances qui s'étendent sur 15 jours, la 2ème séquence avec une ou plusieurs sessions de visionnage mais dans la même journée, idem pour la 3ème séquence à la 2ème).
    Ben oui !!!

  16. #576
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Pardon ? Ben, non !!!
    Alors à quoi correspondrait un fichier avec un nom pareil ?

  17. #577
    Nouveau Candidat au Club Avatar de Laurent_B_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 386
    Points : 0
    Points
    0

  18. #578
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    Merci pour ces informations qui permettent de fixer un peu le cadre du projet.

    Mais, je ne vois toujours pas où est mon erreur d'interprétation de la "signification" du nom du fichier.

    Mes définitions :
    Un épisode : Dans la terminologie des séries télévisées, le terme « épisode » désigne plus spécifiquement chacun des segments composant une série, (Wikipédia)
    Une séance de visionnage : le fait de regarder pendant un certain temps un bout de film ou d'un épisode.
    Une séquence de séance de visionnage : plusieurs séances de visionnage où on reprend le visionnage où on en était resté à la séance précédente (sauf pour la première séance de la séquence où on commence le visionnage du film ou de l'épisode).

    Sommes-nous d'accord sur ces définitions ?
    Sinon, pouvez-vous expliquer ce qui ne va pas sur ces définitions ?

    Si vous êtes d'accord avec ces définitions, pouvez-vous faire les actions que je vous ai proposé (création de la classe "SequenceVisionnage", etc...) ?
    Sinon, pouvez-vous expliquer pourquoi ?
    Si c'est un problème avec le langage C++ ou la conception "objet", pouvez-vous nous indiquer ce qui vous bloque ?

  19. #579
    Nouveau Candidat au Club Avatar de Laurent_B_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 386
    Points : 0
    Points
    0
    Par défaut
    et un fichier "1x1.2021-07-16_08-01_2024-03-22_24_.txt" c'est UNE séquence de séances de visionnage (sur plus de 2 ans)
    Alors à quoi correspondrait un fichier avec un nom pareil ?
    Ce fichier ne correspond à rien. Je n'ai pas utilisé ce type de nom de fichier.

  20. #580
    Nouveau Candidat au Club Avatar de Laurent_B_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2021
    Messages
    386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Avril 2021
    Messages : 386
    Points : 0
    Points
    0
    Par défaut
    Si vous êtes d'accord avec ces définitions, pouvez-vous faire les actions que je vous ai proposé (création de la classe "SequenceVisionnage", etc...) ?
    Sinon, pouvez-vous expliquer pourquoi ?
    Si c'est un problème avec le langage C++ ou la conception "objet", pouvez-vous nous indiquer ce qui vous bloque ?
    Je suis d'accord avec vos définitions.
    Je suis d'accord pour faire les actions que vous avez demandées.
    C'est très difficile pour moi de lire de longues phrases. (J'utilise le narrateur de l'ordi.)
    Je voudrais le faire étape par étape.
    Je vais essayer de faire la 1ère action et je vous demanderai si c'est bon, si vous en êtes d'accord.
    Ensuite, je ferai la 2ème, etc.

    Quand vous me faites des très longues réponses, je suis perdu.

    Merci beaucoup.
    (Fait avec l'aide de l'orthophoniste)

+ 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