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 de lecture et récupération de données dans un fichier texte


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut PRoblème de lecture et récupération de données dans un fichier texte
    Bonjour à tous,
    j'ai un petit soucis dans mon programme que j'ai débuté.
    Le but est le suivant :
    en entrée je sélectionne un fichier texte en sortie je dois récupérer un fichier excel.

    Dans un premier temps, je choisi mon fichier texte, puis quand je clique sur le bouton "Traitement", je parcours mon fichier texte, voici un exemple de mon code :

    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
     
            private void btn_start_ficExcel_Click(object sender, EventArgs e)
            {
                //1 selection du fichier en entrée
     
     
                string FileToRead = txtbox_entree.Text;  //txtbox_entree.Text correspond au chemin de mon fichier texte
     
                string[] lines = File.ReadAllLines(FileToRead); //lecture du fichier
     
                int lenTab = 0;
                //recuperer la longueur du tableau pour les sirens, c'est à dire le nombre de siren dans mon fichier texte.
    /*
    j'ai mis en pièce jointe un échantillon pour illustrer mon exemple, dans mon fichier texte, le premier numéro de siren se trouve à la ligne 3, donc dans mon tableau c'est l'index 2.
    Le siren suivant ( siren n°2) se trouve à la ligne 17
    Dans un premier temps, dans mon code ci dessous, je lis mon fichier et je compte le nombre de siren, en incrémentant mon compteur de 13
    */
                for (int i = 0; i <= File.ReadAllLines(FileToRead).Length; i += 14)
                {
                    lenTab++;
                }
     
                string[] Tabsiren = new string[lenTab];  //j'initialise mon tableau
     
                //récupération des sirens
     
    //ici j'essaye de parcourir les lignes et dans tabsiren, je souhaite avoir toute la liste des sirens présente dans mon fichier, donc à la ligne 3, 17, 31 etc..
    // mais je n'y arrive pas, soit j'ai des cases vide soit il me prend toutes les données de chaque lignes.
                for (int j=0; j<= File.ReadAllLines(FileToRead).Length;j++)
                {
                   // for (int k = 2; k <= File.ReadAllLines(FileToRead).Length; k+=14)
                   // {
                        Tabsiren[j] = lines[j].Substring(6, 9);
     
                  //  }                 
                }
     
    }
    le principe est qu'une fois que j'ai récupéré la liste des sirens dans un tableau, j'initialise la connexion à la base de données, puis je ferais une boucle, avec un select pour récupérer toutes les informations que je souhaite en fonction du sirend et ensuite je constituerais un fichier excel.

    Merci pour votre aide .
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Si tu sais que le premier SIREN est sur la ligne 3 (indice 2) et que les autres sont toutes les 14 lignes, pourquoi commencer à 0 ?
    Et Pourquoi lire deux fois le fichier ?

  3. #3
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut
    Bonjour,
    depuis hier j'ai modifié mon codage, dont voici la descritpion :


    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
     
                string[] lines = File.ReadAllLines(FileToRead); //lecture du fichier
     
                int lenTab = 0;
                int compteur = 0;
     
                //recuperer la longueur du tableau pour les siren
                for (int i = 0; i <= File.ReadAllLines(FileToRead).Length; i++)
                {
                    lenTab++;
                }
     
                //lenTab =43
     
                string[] Tabsiren = new string[lenTab];
     
                MessageBox.Show("lenTab: " + lenTab.ToString()); //lenTab +43
                MessageBox.Show("Nombre de ligne du fichier: " + File.ReadAllLines(FileToRead).Length.ToString());  //NB DE LIGNE 42
     
                try
                {
                    for (int j = 0; j <= lenTab; j++)  
                    {
     
                        Tabsiren[compteur] = lines[j].Substring(6, 9);
                        compteur = compteur + 1;      
     
                    }
                }
                catch (Exception monerreur)
                {
     
                    MessageBox.Show(monerreur.ToString());
                }
    pour répondre à votre question, je ne commence pas à 2 car l'index 0 et 1 seront à null.
    En modificant mon code, je parcours chaque ligne de mon fichier et j'enregistre chaque ligne dans mon tableau, comme je sais que chaque siren se trouvent toutes les 14 lignes.

    Ensuite , je créé un autre tableau dans lequel je vais récupérer que les sirens se trouvant dans mon 1er tableau (tabsiren)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                string[] ListeSiren = new string[lenTab];
                int compteurTab = 0;
     
                for (int i = 2; i <= Tabsiren.Length; i++) 
                           //je commence à l'index 2, comme je sais que le 1er siren se trouve à l'index 2 de mon 1er tableau et j'incremente mon compteur i de 1
                {
                    ListeSiren[compteurTab] = Tabsiren[i];
                    i = i + 13;
                    compteurTab = compteurTab + 1;                
                }
    Vous trouverez en pièce jointe le tableau que j'obtiens " tableau listsiren" dans lequel j'ai mes 3 sirens se trouvant à l'index 0, 1 et 2 ( mon fichire test disposant de 42 ligne).
    Les fichiers finaux disposeront d'environ 600 ou 700 lignes, là j'essaye de trouver le moyen de faire en sorte que le tableau listSiren ne contiennent que les siren présent dans le fichier et soit de la bonne taille, pour éviter d'avoir des valeurs nulls.
    Contrairement à mon premier poste je pense que là ça doit être plus optimisé car je ne le lis qu'une fois le fichier.


    Merci
    Images attachées Images attachées  

  4. #4
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Ceci est inutile car lenTab sera égal à File.ReadAllLines(FileToRead).Length, sans compter que là aussi tu relis le fichier alors que as déjà son contenu dans lines.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     for (int i = 0; i <= File.ReadAllLines(FileToRead).Length; i++)
    {
        lenTab++;
    }
    C'est non seulement inutile et contre-productif. Mais c'est également faux puisque tu n'as pas 43 SIREN mais seulement 3
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //lenTab =43
    string[] Tabsiren = new string[lenTab];
    Ce qui explique pourquoi tu te retrouves avec 40 valeurs nulles dans ton tableau final.
    Tu plantes parce que tu lis les lignes de 0 à 43 (à cause du inférieur ou égal) alors que le dernier indice est à 42.

    Donc là, tu lis le fichier 2 fois au lieu de 3 (j'en avais oublié une tout à l'heure) et en plus tu boucle dessus 2 fois.
    Tu as donc 4 itérations (au lieu de 6 comme tout à l'heure) alors qu'une seule suffit.

    Donc pour être efficace.
    1. Déclarer un tableau de longueur 3 (nombre de lignes de ton fichier (43) divisé par 14), ou directement une List<String> comme ça tu n'a pas à te préoccuper de sa taille.
    2. Faire une seule boucle qui commence à partir de 2 jusqu'à la fin avec un pas de 14
    3. Et dans cette unique boucle extraire les SIREN

  5. #5
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String[] lines = File.ReadAllLines("data.txt");
    List<String> sirens = new List<String>();
    for (Int32 index = 2; index < lines.Count(); index+=14)
    {
        sirens.Add(lines[index].Substring(6, 9));
    }

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut
    bonjour Popo,

    merci pour ton aide, il est génial ton code, je comprend mieux .
    J'ai tenté de m'inspiré de List<string> mais je n'ai jamais pratiqué.

    merci *

  7. #7
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 674
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 674
    Points : 5 259
    Points
    5 259
    Par défaut
    La notation List<T>T est un objet, ici un String est ce qu'on appelle une liste générique.
    C'est en quelque sorte un tableau avec des fonctionnalités plus avancées et gérées nativement par le Framework.

    Les listes génériques ont plein de mécanismes qui font le gros du travail à ta place et facilitent l'écriture et la lecture du code.
    Parmi, les plus utiles :
    - Pas de besoin de gérer un compteur,
    - L'ajout se fait avec la méthode Append, la méthode va ajuster le compteur pour toi et ajouter l'élément à la fin
    - L'insertion à un emplacement particulier se fait avec la méthode Insert, la méthode va ajuster le compteur et décaler les enregistrements pour toi
    - Idem lors de la suppression, le décalage et le compteur sont adaptés automatiquement.
    - Le parcours de TOUS les éléments est simplifié par l'utilisation d'une boucle foreach, (pas d'indice à gérer)

    Si ton problème est résolu, n'oublie pas de cliquer sur le bouton de même nom pour l'indiquer.

  8. #8
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut
    J'en prends bonne note, merci.

  9. #9
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2013
    Messages
    933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 933
    Points : 348
    Points
    348
    Par défaut
    bonjour,

    j'ai un soucis dans mon programme, il refuse de tourné quand le fichire renseigné est volumineux ( environ 50k de ligne).

    Suite à tes recommandations, j'ai tenté de modifier mon code, en y ajoutant des listString, voici l'extrait de code

    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
     
     
    namespace Suivi_tese
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
     
     
            }
     
            private FolderBrowserDialog folderBrowserDialog2;
     
            private bool selfichier;
            private bool selrepertoire;
            private static string repexc = "";
     
            private static MySqlConnection conn;
            private static MySqlDataReader monreader = null;
            protected Range Cellules;
            protected Range UneCellule;
     
            List<string> numcode = new List<string>();
            List<string> matadh = new List<string>();
            List<string> solmon = new List<string>();
     
            List<string> soldat = new List<string>();
            List<string> adhfer = new List<string>();
            List<string> raison = new List<string>();
            List<string> milib = new List<string>();
            List<string> emibas = new List<string>();
            List<string> emicoe = new List<string>();
     
            List<string> debdat = new List<string>();
            List<string> findat = new List<string>();
            List<string> datrec = new List<string>();
     
            public  string ReturnReaderValue(MySqlDataReader reader, int indexe)
            {
                if (!reader.IsDBNull(indexe))
                {
                   return reader.GetString(indexe);
                }
                else
                {
                    return "";
                }           
            }
            private void btn_start_ficExcel_Click_1(object sender, EventArgs e)
            {
                BasicConfigurator.Configure();
     
                string path = @"C:\Users\.........\test\log.txt";
                log.Info("--------------------");
                log.Info("Debut de traitement");
                log.Info("--------------------");
     
                log.Info("Chemin du fichier pour le log " + path);
     
     
                if (selrepertoire == true & selfichier == true)
                {
                    log.Info("Selection OK");
                    int compteur = 0;
                    // LBLRES.Text = compteur.ToString();
     
                    // Set Minimum to 1 represente la 1ere ligne
                    mabarre.Visible = true;
     
     
                    string FileToRead = txtbox_entree.Text;
                    log.Info("Fichier dub choisi" + txtbox_entree.Text);
     
     
                    /*
                        RECUPERATION DES SIRENS
                     */
                    #region Recuperation_sirens
                    int moncompteur = 0;
                    String[] lines2 = File.ReadAllLines(FileToRead);
                    List<String> sirens = new List<String>();
                    for (Int32 index = 2; index < lines2.Count(); index += 14)
                    {
                        if (lines2[index].Substring(0, 5) == "Info1")
                        {
                            sirens.Add(lines2[index].Substring(6, 14));
                            moncompteur++;
                        }
     
                    }
                    log.Info("Mon compteur :" + moncompteur);
                    // Set Maximum  - correspond au nombre de ligne du fichier
                    mabarre.Maximum = sirens.Count;
                    // Set the initial value of the ProgressBar.
                    mabarre.Value = 1;
     
                    #endregion
     
                    /*
                       Connexion à la base mysql
                    */
                    string server = "server";
                    string database = "mabse";
                    string user = "monuser";
                    string password = "monpass";
                    string port = "2222";
     
                    string connString = "Server=" + server + "; Port=" + port + ";Database=" + database + ";Uid=" + user + ";Pwd=" + password + ";SSL Mode=None;default command timeout=0";
                    string marequete = "";
     
                    conn = new MySqlConnection(connString);
                    try
                    {
                        conn.Open();
     
                        /*
                          CREATION ET OUVERTURE DU FICHIER EXCEL
                       */
                        repexc = folderBrowserDialog2.SelectedPath + "\\dossier" + DateTime.Now.ToString("yyyyMMdd_HHmmss") + ".xlsx";
                        Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application();
                        xla.Visible = false;
                        Workbook wb = xla.Workbooks.Add(XlSheetType.xlWorksheet);
                        //WorksheetCollection worksheets = xla.Worksheets;
                        Worksheet ws = (Worksheet)xla.ActiveSheet;
     
                        ws.Cells[1, 1] = "colonne 1";
                        ws.Cells[1, 2] = " colonne  2";
                        ws.Cells[1, 3] = " colonne  3";
                        ws.Cells[1, 4] = " colonne  4";
                        ws.Cells[1, 5] = "colonne 5";
                        ws.Cells[1, 6] = "colonne 6";
                        ws.Cells[1, 7] = "colonne 7";
                        ws.Cells[1, 8] = "colonne 8";
                        ws.Cells[1, 9] = "colonne 9";
                        ws.Cells[1, 10] = "colonne 10";
                        ws.Cells[1, 11] = "colonne 11";
                        ws.Cells[1, 12] = "colonne 12";
                        ws.Cells[1, 13] = "colonne 13";
                        UneCellule = ws.get_Range("A1", "M1");
                        ws.Columns.Font.Name = "MS Sans Serif";
                        ws.Columns.Font.Size = 12;
     
     
                        int cptCol = 2;
                        /*
                            Parcours de la base de données et récupération du résultat
                        */
     
                        int compteurAnnexe = 0;
     
                        for (int a = 0; a < sirens.Count; a++)
                        {
     
                            marequete = " select t0.tesccpcod, " +
                           "t0.numero, " +
                           "t0.identifiant, " +
                           "t0.xxxxx, " +
                           "t0.xxxxx, " +
                           "t0.xxxxx, " +
                           "t1.xxxxx," +
                           "t2.xxxxx," +
                           "t2.xxxxxx," +
                           "t2.xxxxxx," +
                            "t1.xxxxxx," +
                            "t1.xxxxxx," +
                            "t1.xxxxxx " +
                            "from tes000pf t0 " +
                             "left join tes001pf t1 on t1.ccccc = t0.ccccc " +
                             "left join tes002pf t2 on t2.ccccc = t0.ccccc " +
                             "left join tes003pf t3 on t3.ccccc = t0.ccccc " +
                             "left join tes004pf t4 on t4.ccccc = t0.ccccc " +
                             "where t0.numero ='" + sirens[a] + "'";
     
                            log.Info("Ma requete utilisé:" + marequete);
                            log.Info("sirens :" + sirens[a]);
     
                            MySqlCommand cmd = new MySqlCommand(marequete, conn);
                            monreader = cmd.ExecuteReader();             
                            if (monreader.Read())  //while
                            {
    							//recuperation des données
                                numcode.Add(ReturnReaderValue(monreader, 0));    //code
                                matadh.Add(ReturnReaderValue(monreader, 1));    //siret
                                solmon.Add(ReturnReaderValue(monreader, 2));   // matadh                           
                                soldat.Add(ReturnReaderValue(monreader, 3));
                                adhfer.Add(ReturnReaderValue(monreader, 4));
                                raison.Add(ReturnReaderValue(monreader, 5));
                                milib.Add(ReturnReaderValue(monreader, 6));
                                emibas.Add(ReturnReaderValue(monreader, 7));
                                emicoe.Add(ReturnReaderValue(monreader, 8));
                                debdat.Add(ReturnReaderValue(monreader, 9));
                                findat.Add(ReturnReaderValue(monreader, 10));
                                datrec.Add(ReturnReaderValue(monreader, 11));
     
    							//enregistrement dans mon fichier excel
                                ws.Cells[cptCol, 1] = numcode[compteurAnnexe];
                                ws.Cells[cptCol, 2] = matadh[compteurAnnexe];
                                ws.Cells[cptCol, 3] = solmon[compteurAnnexe];
                                ws.Cells[cptCol, 4] = soldat[compteurAnnexe];
                                ws.Cells[cptCol, 5] = adhfer[compteurAnnexe];
                                ws.Cells[cptCol, 6] = raison[compteurAnnexe];
                                ws.Cells[cptCol, 7] = milib[compteurAnnexe];
                                ws.Cells[cptCol, 8] = emibas[compteurAnnexe];
                                ws.Cells[cptCol, 9] = emicoe[compteurAnnexe];
                                ws.Cells[cptCol, 10] = debdat[compteurAnnexe];
                                ws.Cells[cptCol, 11] = findat[compteurAnnexe];
                                ws.Cells[cptCol, 12] = datrec[compteurAnnexe];
     
                                compteurAnnexe++;
                                cptCol++;
                                mabarre.PerformStep();
     
                            }
                            else
                            {
                                ws.Cells[cptCol, 2] = sirens[a];
                                cptCol++;
                            }
     
                            mabarre.PerformStep();
                            monreader.Close();
     
                            compteur++;
                            LBLRES.Text = compteur.ToString();
     
                        }//fin du for
     
                        log.Info("********* FIn de la boucle - sauvegarde du fichier excel ********** " );
                        ws.SaveAs(repexc, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
                        xla.Quit();
     
     
                        MessageBox.Show("Fin du traitement", "Message d'information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    catch (MySqlException erreur)
                    {
                        log.Info("******** ERREUR DANS LE TRAITEMENT :" + erreur.ToString());
                        MessageBox.Show(erreur.ToString());
     
                        conn.Close();
                    }
                    log.Info("-----------  FIN DE TRAITEMENT -----------");
                }
                else
                {
                    log.Info("Fin du traitement du traitement - KO ");
     
     
                    log.Error("AUcun Fichier ou dossier selectoinné");
                    MessageBox.Show("Merci de choisir un fichier et un répretoire de sortie", "Message d'information", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
              //  monstream.Close();
            }
        }//fin méthode public parital class
     
     
     
    }//fin du namespace
    avec un fichire "normale" les résultats remontés dans mon fichier excel sont correct, mais pourtant je ne comprend pas pourquoi il refuse de tourné.
    Logiquement il devrait tourner car meme s'il fait par exempe 1000 ligne, je ne peux qu'avoir que 50 sirens ce qui n'est rien en soit et donc mon programme devrait être fluide ....

    Merci pour tes conseils .

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/07/2012, 14h48
  2. récupération de données dans un fichier texte
    Par capucine1983 dans le forum Langage
    Réponses: 4
    Dernier message: 30/06/2007, 00h16
  3. problème récupération de données dans des fichiers .DAT
    Par indymontpellier dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/04/2006, 07h54
  4. Réponses: 16
    Dernier message: 10/11/2005, 21h10
  5. Réponses: 6
    Dernier message: 23/10/2005, 12h24

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