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 :

Calculer le pourcentage d'un traitement de fichier csv


Sujet :

C#

  1. #1
    Membre à l'essai
    Homme Profil pro
    Informatique
    Inscrit en
    Janvier 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 20
    Points : 16
    Points
    16
    Par défaut Calculer le pourcentage d'un traitement de fichier csv
    Bonjour à tous,

    Je souhaiterais faire une application qui fait un certain traitement sur un fichier csv. si l'utilisateur coche la case à cocher "Trier", l'application fait que le tri de fichier, si il coche la case à cocher "Recadrer", il faut que le recadrage. Bien entendu s'il coche les deux, beh, il y aura les deux traitements Tri+recadrage.

    Je souhaiterais calculer le pourcentage de traitement dans ces cas la, mais je n'arrive pas à savoir où et comment calculer le pourcentage.

    code Recadrage:

    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
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    public void Processing()
            {
                string ligne;
                string targetFile;
                string targetFilelog;
                string[] TAB_ligne;
                string[] TAB_ligne_contrat;
                string[] TAB_ligne_personne;
                string[] TAB_contrat = new string[100];
                string[] TAB_personne = new string[100];
                string[] TAB_trou = new string[100];
                int cpt = 0; // compteur pour le remplissage de TAB_ligne_contrat
                int cpt2 = 0; // compteur pour le remplissage de TAB_ligne_personne
                int cpt_trou = 0; // compteur pour le remplissage de TAB_trou
                int cpt_garfictive = 0; //compteur afin de dénombrer le nombre de garantie fictive à ajouter sur 1 contrat
     
                LoadZone zone = new LoadZone();
     
                //Déclartion des variables qui serviront pour la comparaison dans le traitement
     
                // Variables Niveau contrat
                string NUMCCI = "";
                string DEBCTR = "";
                string FINCTR = "";
     
                // Variables Niveau personne
                string NUMRNG = "";
                string DEBPER = "";
                string FINPER = "";
     
                // Variables Niveau Produit (Garantie)
                string DEBGAR = "";
                string DEBGAR_precedent = "";
                string FINGAR_precedent = "";
     
                string GARFICTIVE = "";
     
     
                if (richTextBox1.Text != "")
                {
                    //MessageBox.Show(varg.Filename);
                    //ligne =
                   // MessageBox.Show(varg.File);
     
                   // FileSort(); // on appel la méthode FileSort afin de trier le fichier source
     
                    //Libellé et chemin du fichier cible
                    targetFile = varg.Filename + "_cible.csv";
     
                    //Libellé et chemin du fichier de log
                    targetFilelog = varg.Filename + ".log";
     
                    //Lecture du fichier d'extraction en entrée,
                    //2 lectures afin de réaliser la comparaison avec un décalage de 1 ligne
     
                    StreamReader sr_File = new StreamReader(varg.Filename + "_trie.csv");
     
                    //création du fichier cible
                    StreamWriter sw_File = new StreamWriter(targetFile);
     
                    //création du fichier de log
                    StreamWriter sw_Filelog = new StreamWriter(targetFilelog);
                    sw_Filelog.WriteLine("{0}", "Début du traitement"); //Ligne de début de traitement
     
                    //Lecture du fichier
                    ligne = sr_File.ReadLine(); //lecture de la 1ère ligne
     
                    while (ligne != null)
                    {
     
                        numLigne = numLigne + 1; // incrémentation du numéro de ligne lue
     
                        TAB_ligne = ligne.Split(';'); // on découpe la ligne dès qu'un ';' est rencontré, les éléments sont stockés dans un tableau de string
                        toTrim(TAB_ligne); // on supprime les espaces des zones afin de fiabiliser les comparaisons
     
                        //MessageBox.Show(TAB_ligne[zone.DIC_rang["NUMCCI"]]);
     
     
     
                        if (TAB_ligne[zone.DIC_rang["NUMCCI"]] == NUMCCI || NUMCCI == "") // Si on lit le même contrat ou si on est positionné à la 1ère ligne alors on stock la ligne dans le tableau de niveau contrat TAB_contrat
                        {
                            //MessageBox.Show(cpt.ToString() + " " + TAB_ligne[zone.DIC_rang["NUMCCI"]]);
                            //MessageBox.Show(ligne);
                            //on remplit le tableau temporaire avec la valeur de la ligne courante et ceci tant qu'un nouveau contrat n'est pas trouvé
                            TAB_contrat[cpt] = ligne;
                            NUMCCI = TAB_ligne[zone.DIC_rang["NUMCCI"]];
                            cpt = cpt + 1;
                            ligne = sr_File.ReadLine(); // on passe à la ligne suivante
     
                        }
     
                        if (TAB_ligne[zone.DIC_rang["NUMCCI"]] != NUMCCI || ligne == null) // si la ligne suivante n'est pas le même contrat ou si on a atteint la fin du fichier on début les traitements
                        {
                            //on effectue les traitements sur les lignes du contrat précédent, lignes stockées dans TAB_ligne_contrat
     
                            //on initialise à une valeur par défaut les variables que l'on va comparer
                            DEBCTR = "";
                            FINCTR = "";
                            DEBGAR = "";
     
                            // ####### DEBUT TRAITEMENT #######
     
                            // *** 1er passage de comparaison *** déterminer la date de la + ancienne garantie reprise sur le contrat
                            // Déterminer si on recadre au niveau CONTRAT
     
                            for (int i = 0; i < cpt; i++) // pn détermine quels sont les date de début contrat (DEBCTR) MIN, les dates de fin contrat (FINCTR) MAX et la date de début de la(les) plus ancienne(s) garantie(s) (DEBGAR) MIN
                            {
                                //MessageBox.Show(TAB_ligne[zone.DIC_rang["NUMCCI"]] + " " + TAB_contrat[i]);
                                TAB_ligne_contrat = TAB_contrat[i].Split(';'); // on découpe la ligne dès qu'un ';' est rencontré, les éléments sont stockés dans un tableau de string
                                toTrim(TAB_ligne_contrat); // on supprime les espaces des zones afin de fiabiliser les comparaisons
     
                                DEBCTR = minDate(DEBCTR, TAB_ligne_contrat[zone.DIC_rang["DEBCTR"]]);
                                FINCTR = maxDate(FINCTR, TAB_ligne_contrat[zone.DIC_rang["FINCTR"]]);
                                DEBGAR = minDate(DEBGAR, TAB_ligne_contrat[zone.DIC_rang["DEBGAR"]]);
     
                                //MessageBox.Show(DEBCTR + " " + DEBGAR);
                            }
     
                            //on compare la date minimum debctr et debgar afin de déterminer si un passage de recadrage contrat est nécessaire
                            if (toDate(DEBCTR) == toDate(DEBGAR))
                            {
                                //SYS_log_line(sw_File_log_DEBCTR, SYS_format_log(NUMCCI + " PAS de recadrage de DEBCTR"));
                            }
                            else if (toDate(DEBCTR) < toDate(DEBGAR))
                            {
                                // on a désormais la date de début contrat recadrée, on l'affecte à DEBCTR
                                SYS_log_line(sw_File_log_DEBCTR, SYS_format_log(NUMCCI + " ancienne date " + DEBCTR + " nouvelle date " + DEBGAR));
                                DEBCTR = DEBGAR;
     
                                // *** passage de mise à jour ***
                                // on recadre au niveau CONTRAT
                                for (int i = 0; i < cpt; i++)
                                {
                                    //MessageBox.Show(cpt + " " + i);
     
                                    TAB_contrat[i] = UpdateLine(TAB_contrat[i], "DEBCTR", DEBGAR);
                                    TAB_contrat[i] = UpdateLine(TAB_contrat[i], "FINCTR", FINCTR);
                                }
                            }
                            else
                                SYS_log_line(sw_File_log_DEBCTR, SYS_format_log(NUMCCI + " INCOHERENCE entre DEBCTR et DEBGAR "));
     
     
                            // *** 2e passage *** SI la date de debut de la personne est inférieure à celle de la date contrat recadrée on ajuste à la date de contrat recadrée
                            // on recadre au niveau PERSONNE
     
                            NUMRNG = "";
                            cpt2 = 0;
                            cpt_trou = 0;
                            DEBGAR = "";
                            FINPER = "";
                            DEBGAR_precedent = "";
                            FINGAR_precedent = "";
                            int numlignepers = 0;
                            for (int i = 0; i < cpt; i++)
                            {
                                TAB_ligne_contrat = TAB_contrat[i].Split(';'); // on découpe la ligne dès qu'un ';' est rencontré, les éléments sont stockés dans un tableau de string
                                toTrim(TAB_ligne_contrat); // on supprime les espaces des zones afin de fiabiliser les comparaisons 
     
                                //MessageBox.Show("NUMRNG " + NUMRNG + " TAB " + TAB_ligne_contrat[zone.DIC_rang["NUMRNG"]]);
                                if (NUMRNG == TAB_ligne_contrat[zone.DIC_rang["NUMRNG"]] || NUMRNG == "")
                                {
     
                                    TAB_personne[cpt2] = TAB_contrat[i];
                                    cpt2 = cpt2 + 1;
                                    NUMRNG = TAB_ligne_contrat[zone.DIC_rang["NUMRNG"]];
                                    DEBGAR = minDate(DEBGAR, TAB_ligne_contrat[zone.DIC_rang["DEBGAR"]]); //on cherche la + ancienne garantie afin de déterminer le date de debut personne (debper)
                                    FINPER = maxDate(FINPER, TAB_ligne_contrat[zone.DIC_rang["FINPER"]]); //on cherche date de fin personne (finper) la plus élévée
     
     
                                    if (i == 0)
                                    {
                                        DEBGAR_precedent = TAB_ligne_contrat[zone.DIC_rang["DEBGAR"]];
                                        FINGAR_precedent = TAB_ligne_contrat[zone.DIC_rang["FINGAR"]];
                                    }
                                    else
                                    {   
                                        //Gestion des trous de couverture
                                        if((toDate(FINGAR_precedent) < toDate(TAB_ligne_contrat[zone.DIC_rang["DEBGAR"]]).AddDays(-1) ) && (toDate(FINGAR_precedent) < toDate(TAB_ligne_contrat[zone.DIC_rang["FINGAR"]]).AddDays(-1)))
                                        {
                                            //MessageBox.Show(NUMCCI + " FINGAR_précedent " + FINGAR_precedent + " avec toDate " + toDate(FINGAR_precedent) + " DEBGAR - 1 " + toDate(TAB_ligne_contrat[zone.DIC_rang["DEBGAR"]]).AddDays(-1));
                                            TAB_trou[cpt_trou] = UpdateLine(TAB_contrat[i], "CODPRD", SYS_format_zone("FICTIF", zone.DIC_long["CODPRD"])); // code FICTIF pour le code produit
                                            TAB_trou[cpt_trou] = UpdateLine(TAB_trou[cpt_trou], "CODGAR", SYS_format_zone("FICTIF", zone.DIC_long["CODGAR"])); // code FICTIF pour le code garantie
                                            TAB_trou[cpt_trou] = UpdateLine(TAB_trou[cpt_trou], "DEBGAR", SYS_format_zone(FINGAR_precedent, zone.DIC_long["DEBGAR"])); // la garantie commence au début du contrat recalculée
                                            TAB_trou[cpt_trou] = UpdateLine(TAB_trou[cpt_trou], "FINGAR", SYS_format_zone(TAB_ligne_contrat[zone.DIC_rang["DEBGAR"]], zone.DIC_long["FINGAR"]));// Elle prend fin à l'ancienne date de début recalculée
     
                                            cpt_trou = cpt_trou + 1;
                                            DEBGAR_precedent = TAB_ligne_contrat[zone.DIC_rang["DEBGAR"]];
                                            FINGAR_precedent = TAB_ligne_contrat[zone.DIC_rang["FINGAR"]];
     
                                            SYS_log_line(sw_File_log_GARFIC, SYS_format_log(NUMCCI + " Garantie Fictive pour combler trou de couverture"));
                                        }
                                    }
                                    DEBGAR_precedent = TAB_ligne_contrat[zone.DIC_rang["DEBGAR"]];
                                    FINGAR_precedent = TAB_ligne_contrat[zone.DIC_rang["FINGAR"]];
                                }
                                else if (NUMRNG != TAB_ligne_contrat[zone.DIC_rang["NUMRNG"]] || i == cpt - 1)
                                {
                                    //recadrage de la date de debut (DEBPER) à la plus ancienne garantie, recadrage éventuel de FINPER à la fin de garantie la plus élevée
                                    for (int i2 = 0; i2 < cpt2; i2++)
                                    {
                                        TAB_ligne_personne = TAB_personne[i2].Split(';'); // on découpe la ligne dès qu'un ';' est rencontré, les éléments sont stockés dans un tableau de string
                                        toTrim(TAB_ligne_personne); // on supprime les espaces des zones afin de fiabiliser les comparaisons
     
                                        if (TAB_ligne_personne[zone.DIC_rang["DEBPER"]] != DEBGAR)
                                            SYS_log_line(sw_File_log_DEBPER, SYS_format_log(NUMCCI + " NUMRNG: " + NUMRNG + " ancienne DEBPER: " + TAB_ligne_personne[zone.DIC_rang["DEBPER"]] + " nouvelle DEBPER: " + DEBGAR));
                                        if (TAB_ligne_personne[zone.DIC_rang["FINPER"]] != FINPER)
                                            SYS_log_line(sw_File_log_FINPER, SYS_format_log(NUMCCI + " NUMRNG: " + NUMRNG + " ancienne FINPER: " + TAB_ligne_personne[zone.DIC_rang["FINPER"]] + " nouvelle FINPER: " + FINPER));
     
                                        TAB_personne[i2] = UpdateLine(TAB_personne[i2], "DEBPER", DEBGAR);
                                        TAB_personne[i2] = UpdateLine(TAB_personne[i2], "FINPER", FINPER);
                                    }
                                    for (int a = numlignepers; a < numlignepers + cpt2; a++)
                                    {
                                        TAB_contrat[a] = TAB_personne[a - numlignepers];
                                    }
     
                                    numlignepers = numlignepers + cpt2;
     
                                    Array.Clear(TAB_personne, 0, TAB_contrat.Length); // on vide le tableau
                                    cpt2 = 0;
                                    //cpt_trou = 0;
                                    TAB_personne[cpt2] = TAB_contrat[i];
                                    cpt2 = cpt2 + 1;
                                    NUMRNG = TAB_ligne_contrat[zone.DIC_rang["NUMRNG"]];
                                    DEBGAR = "";
                                    FINPER = "";
     
                                    DEBGAR_precedent = TAB_ligne_contrat[zone.DIC_rang["DEBGAR"]];
                                    FINGAR_precedent = TAB_ligne_contrat[zone.DIC_rang["FINGAR"]];
                                }
     
                            }
     
                            // *** 3e passage *** Gestion de l'assuré principal:
                            // on recadre la date de début de l'assuré principal sur la date de contrat recalculée
                            DEBGAR = "";
                            DEBPER = "";
                            GARFICTIVE = "";
     
                            for (int i = 0; i < cpt; i++)
                            {
                                TAB_ligne_contrat = TAB_contrat[i].Split(';'); // on découpe la ligne dès qu'un ';' est rencontré, les éléments sont stockés dans un tableau de string
                                toTrim(TAB_ligne_contrat); // on supprime les espaces des zones afin de fiabiliser les comparaisons
     
     
     
                                if (TAB_ligne_contrat[zone.DIC_rang["TYPASS"]] == "ASSPRI") // SI la ligne concerne l'assuré principal (le détenteur du contrat) on recadre automatiquement à la date de début contrat recalculée si nécessaire
                                {
                                    DEBPER = minDate(DEBGAR, TAB_ligne_contrat[zone.DIC_rang["DEBGAR"]]);
                                    if (toDate(TAB_ligne_contrat[zone.DIC_rang["DEBPER"]]) > toDate(DEBCTR))
                                    {
                                        TAB_contrat[i] = UpdateLine(TAB_contrat[i], "DEBPER", DEBCTR);
                                        GARFICTIVE = TAB_contrat[i];
     
                                        SYS_log_line(sw_File_log_GARFIC, SYS_format_log(NUMCCI + " DEBPER recalculée à la date de début contrat DEBCTR pour assuré principal afin de combler toute la période de validité du contrat"));
                                    }
     
                                    DEBGAR = TAB_ligne_contrat[zone.DIC_rang["DEBGAR"]];
                                }
                            }
     
                            //création de la garantie fictive
                            if (toDate(DEBPER) > toDate(DEBCTR) && GARFICTIVE != "") //Si DEBPER, calculée à la date min de la plus ancienne garantie (DEBGAR) est supérieure à la date de début contrat et qu'une garantie fictive est positionnée avec GARFICTIVE alors on insère une ligne
                            {
                                //MessageBox.Show("Garantie fictive pour assuré principal");
                                //MessageBox.Show("debper " + toDate(DEBPER) + " debctr " + toDate(DEBCTR));
                                cpt_garfictive = cpt_garfictive + 1;
     
                                TAB_trou[cpt_trou] = UpdateLine(GARFICTIVE, "CODPRD", SYS_format_zone("FICTIF", zone.DIC_long["CODPRD"])); // code FICTIF pour le code produit
                                TAB_trou[cpt_trou] = UpdateLine(TAB_trou[cpt_trou], "CODGAR", SYS_format_zone("FICTIF", zone.DIC_long["CODGAR"])); // code FICTIF pour le code garantie
                                TAB_trou[cpt_trou] = UpdateLine(TAB_trou[cpt_trou], "DEBGAR", SYS_format_zone(DEBCTR, zone.DIC_long["DEBGAR"])); // la garantie commence au début du contrat recalculée
                                TAB_trou[cpt_trou] = UpdateLine(TAB_trou[cpt_trou], "FINGAR", SYS_format_zone(DEBPER, zone.DIC_long["FINGAR"]));// Elle prend fin à l'ancienne date de début recalculée
                                cpt_trou = cpt_trou + 1;
     
                                SYS_log_line(sw_File_log_ASSPRI, SYS_format_log(NUMCCI + " Garantie Fictive assuré principal afin de combler toute la période de validité du contrat"));
                            }
     
                            // *** dernier passage ***
                            // on écrit les lignes dans le fichier en sortie
     
                            for (int i = 0; i < cpt; i++)
                            {
                                sw_File.WriteLine("{0}", TAB_contrat[i]);//écriture de la ligne courante dans le fichier cible
                            }
     
                            for (int i = 0; i < cpt_trou; i++)
                            {
                                //MessageBox.Show(TAB_trou[i]);
                                sw_File.WriteLine("{0}", TAB_trou[i]);//écriture de la ligne courante dans le fichier cible
                            }
     
                            //on positionne NUMCCI à la valeur du nouveau contrat trouvé
                            NUMCCI = TAB_ligne[zone.DIC_rang["NUMCCI"]];
                            //on vide les tableaux
                            Array.Clear(TAB_contrat, 0, TAB_contrat.Length);
                            Array.Clear(TAB_trou, 0, TAB_trou.Length);
     
                            cpt = 0;
     
                        }
    code tri:

    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
    public void FileSort()
    {
        LoadZone zone = new LoadZone();
     
        string ligne;
        string[] TAB_ligne;
        List<Contrat> listeContrats = new List<Contrat>();
     
        //construction d'un tableau avec les NUMCIN, NUMRNG, DEBGAR, FINGAR et la valeur de la ligne entière de l'extraction PréDMA
     
        using (StreamReader reader = new StreamReader(varg.Filename))
        {
            while ((ligne = reader.ReadLine()) != null)
            {
                TAB_ligne = ligne.Split(';');
                //MessageBox.Show(tabLigne[0].Trim() + " " + tabLigne[1].Trim());
                listeContrats.Add(new Contrat
                {
                    NUMCCI = TAB_ligne[zone.DIC_rang["NUMCCI"]],
                    DEBCTR = TAB_ligne[zone.DIC_rang["DEBCTR"]],
                    FINCTR = TAB_ligne[zone.DIC_rang["FINCTR"]],
                    NUMRNG = Convert.ToInt32(TAB_ligne[zone.DIC_rang["NUMRNG"]]),
                    CODPRD = TAB_ligne[zone.DIC_rang["CODPRD"]],
                    CODGAR = TAB_ligne[zone.DIC_rang["CODGAR"]],
                    DEBGAR = TAB_ligne[zone.DIC_rang["DEBGAR"]],
                    FINGAR = TAB_ligne[zone.DIC_rang["FINGAR"]],
                    lig = ligne
                });
     
            }
     
        }
     
        IEnumerable<string> requete = from c in listeContrats
                                      orderby c.NUMCCI, c.NUMRNG,
                                      c.DEBGAR, c.FINGAR
                                      select c.lig;
     
     
        //Ecriture des données dans le fichier de déstination
        using (StreamWriter writer = new StreamWriter(varg.Filename + "_trie.csv"))
        {
            foreach (string lig in requete)
            {
                writer.WriteLine(lig);
            }
        }
        MessageBox.Show("Fichier trié avec succès. ");
     
    }


    En sachant qu'il y a beaucoup de test, et que tout le traitement se fait dans la boucle while. il y a un traitement ligne par ligne.

    J'ai fait une fonction qui me donne le nombre de lignes du fichier à traiter.

    Il faut rappeler que si l'utilisateur coche que le tri, le pourcentage n'est pas le même. la même chose s'il fait les deux ou juste le recadrage.

    Je souhaiterais utiliser ce pourcentage dans l'affichage d'une barre de progression.


    Comment faire? quelqu'un a-t-il une idée?

    Je vous remercie par avance.

    Bien cordialement.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    déjà le mieux serait de lire un cours sur c#, parce que là ca ressemble à du code des années 90
    de nos jours on doit pouvoir faire la même chose avec beaucoup moins de code

    et ca se trouve bien écrit ca ira tellement vite que tu n'auras plus besoin de progressbar ^^

  3. #3
    Membre à l'essai
    Homme Profil pro
    Informatique
    Inscrit en
    Janvier 2012
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Janvier 2012
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Salut Pol63, Je te remercie pour ta réponse.

    mais ça ne répond toujours pas à ma question. c'est une application winform, et j'essaye de faire avec ce que je sais faire.

    et pour l'instant ce que je sais pas c'est ça!!



    Citation Envoyé par Pol63 Voir le message
    déjà le mieux serait de lire un cours sur c#, parce que là ca ressemble à du code des années 90
    de nos jours on doit pouvoir faire la même chose avec beaucoup moins de code

    et ca se trouve bien écrit ca ira tellement vite que tu n'auras plus besoin de progressbar ^^

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    si j'avais pu t'en dire plus je l'aurais fait, mais du code dans le genre c'est dur à lire ...

    dans le principe pour une progression avec une boucle c'est tour actuel / nb tours total
    si tu as 2 boucles alors il faut que nbtotal soit le cumul des 2 nb de tours, et tour actuel est incrémenté dans chaque boucle ...

Discussions similaires

  1. calcule de temps a partir d'un fichier CSV
    Par AI_LINUX dans le forum Calcul scientifique
    Réponses: 2
    Dernier message: 10/05/2015, 18h28
  2. Réponses: 1
    Dernier message: 09/05/2012, 16h41
  3. traitement de fichiers csv
    Par nadir CoCo dans le forum Débuter
    Réponses: 10
    Dernier message: 27/03/2012, 15h49
  4. [XL-2010] traitement de fichier csv
    Par boudoula dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 03/11/2011, 23h19
  5. Traitement de fichiers CSV avec Access
    Par seb68 dans le forum VBA Access
    Réponses: 12
    Dernier message: 09/11/2008, 12h50

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