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 :

Ressources systemes insuffisantes


Sujet :

C#

  1. #1
    Membre régulier
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Points : 77
    Points
    77
    Par défaut Ressources systemes insuffisantes
    Salut à tous,
    je développe en ce moment une application C# avec une BDD Access. Lors de l'importation du fichier .txt de plus 300 lignes, j'ai le message d'erreur en objet.
    Quelqu'un a-t-il déjà eu ce souci ? Si oui, comment l'a-t-il résolue ?

    Je suis disponible pour tout complément d'information.

    Merci pour votre aide.

  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
    Un fichier TXT de 300 lignes, c'est vraiment peanuts !
    En plus quel rapport avec Access ?

    On peut voir la manière utilisée pour charger ce fichier ?
    Voir ce que tu en fait ?

  3. #3
    Membre régulier
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Points : 77
    Points
    77
    Par défaut
    Salut popo,


    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
     
     private void BTSOURCEBIAO_Click(object sender, EventArgs e)
            {
                FILEDIALOGBIAO.InitialDirectory = Environment.CurrentDirectory;
                //FILEDIALOG1.Filter = "FICHIER CSV(*.csv)|*.csv|All Files (*.*)|*.txt";//defini le type de fichier autorisé dans la boîte de dialogue
                FILEDIALOGBIAO.Filter = "FICHIER TXT(*.rec)|*.rec|All Files (*.*)|*.csv";
                FILEDIALOGBIAO.FilterIndex = 1;
                DialogResult rs = FILEDIALOGBIAO.ShowDialog();
                if (rs == DialogResult.OK)
                {
                    //Le textbox reçoit le chemin du fichier csv.
                    TXTSOURCEBIAO.Text = FILEDIALOGBIAO.FileName;
                }
     
                //On vide le fichier erreur après avoir cliqué sur le bouton
                using (FileStream fstream = new FileStream(Application.StartupPath + "\\erreur_prelevement.txt", FileMode.Truncate))
                {
                }
     
            }
     
      private void button1BIAO_Click(object sender, EventArgs e)
            {
     
                // Connection à la base et insertion des enregistrements.
                OleDbConnection maconnexion = cls.ouvrirConnection(ClassGle.chaine);
     
                //Au clic on vide la la table virement
                string requete_delete = "delete from prelevement";
                OleDbDataReader lire_delete = cls.ouvrirRequète(requete_delete, maconnexion);
     
     
                // Suppression de id  dans ma Table prelevement
                string requete_drop = "ALTER TABLE prelevement DROP COLUMN id";
     
                //Ajout de id  de type COUNTER dans ma Table virement
                string requete_add = "ALTER TABLE prelevement ADD id COUNTER";
     
                //Départ de id de type COUNTER à base avec un pas de step
                string requete_finale = "ALTER TABLE prelevement ALTER COLUMN id COUNTER(1,1)";
     
                OleDbDataReader lire_requete_drop = cls.ouvrirRequète(requete_drop, maconnexion);
                OleDbDataReader lire_requete_add = cls.ouvrirRequète(requete_add, maconnexion);
                OleDbDataReader lire_requete_finale = cls.ouvrirRequète(requete_finale, maconnexion);
     
     
                //On recupere la date du jour afin de renommer le fichier erreurs du jour
     
                DateTime datej = DateTime.Today;
                string date2 = Convert.ToString(datej).Replace("/", "");
                string datejour = date2.Substring(0, 8);
                string fichier_erreur = "erreur_prelevement" + datejour + ".txt";
     
     
                if (TXTSOURCEBIAO.Text == "")
                {
                    MessageBox.Show("Veuillez selectionner le fichier à controler");
                    TXTSOURCEBIAO.Focus();
     
                }
                else
                {
                    //On vide le fichier erreur après avoir cliqué sur le bouton
                    using (FileStream fstream = new FileStream(Application.StartupPath + "\\erreur_prelevement.txt", FileMode.Truncate))
                    {
                    }
     
                    //On vide le fichier erreur après avoir cliqué sur le bouton
                    using (FileStream fstream = new FileStream(Application.StartupPath + "\\erreur_prelevement.txt", FileMode.Truncate))
                    {
                    }
     
                    utf8 = new UTF8Encoding(false);
                    string fileName = FILEDIALOGBIAO.FileName;
                    string[] lignes = File.ReadAllLines(fileName);
                    int lignesfichier = lignes.Length;
                    FileStream fs;
                    BinaryReader br;
     
                    // Controle des caractères invisibles à windows
     
                    //Lecture du fichier à partir de la position 0 
                    fs = File.Open(fileName, FileMode.Open);
                    fs.Seek(0, SeekOrigin.Begin);
     
                    //Lecture binaire des caractères du fichier
                    br = new BinaryReader(fs);
     
                    // while (fs.Position < fs.Length)
                    for (int ii = 1; ii < lignesfichier; ii++)
                    {
     
                        string codeascii = Convert.ToString(br.ReadByte());
                        string requete_codeascii = "select Code as cptcode from codeascii where Code = '" + codeascii + "' ";
                        OleDbDataReader lire_requete_codeascii = cls.ouvrirRequète(requete_codeascii, maconnexion);
                        while (lire_requete_codeascii.Read())
                        {
                            int code_ascii = Convert.ToInt16(lire_requete_codeascii["cptcode"]);
                            if (code_ascii == 0)
                            {
                                string[] lines_caractere = { "Caractères invisibles present dans le fichier. " };
                                //remplir le fichier erreur.txt avec retour à la ligne
                                System.IO.File.WriteAllLines(Application.StartupPath + "\\erreur_prelevement.txt", lines_caractere);
     
                            }
                        }
                    }
     
                     string line0 = lignes[0];
                     try
                     { 
                         //Controle de la première ligne. On vérifie si toutes les valeurs sont renseignées
                         if (line0.Length == 69 || line0.Length == 128 || line0.Length == 116)
                         {
                             try
                             {
     
                                 string zero = "00000000000000000000000000000000000000000000000000000000000";
     
     
                                 //On recupere les 69 premiers caractères de la premiere afin d'eviter les problemes sur la longueur de la ligne
                                 string carc = line0.Substring(0, 69).Replace("\"", "");
                                 string line1 = carc + zero;
     
                                 string codeoper1 = line1.Substring(0, 2).Replace("\"", "");
                                 string typeenreg1 = line1.Substring(2, 1).Replace("\"", "");
                                 string sequence1 = line1.Substring(3, 5).Replace("\"", "");
                                 string dateremise1 = line1.Substring(8, 6).Replace("\"", "");
                                 string codebanq1 = line1.Substring(14, 3).Replace("\"", "");
                                 string codeguichet1 = line1.Substring(17, 5).Replace("\"", "");
                                 string compte1 = line1.Substring(22, 11).Replace("\"", "");
                                 string nom1 = line1.Substring(33, 24).Replace("\"", "");
                                 string libanq1 = line1.Substring(57, 17).Replace("\"", "");
                                 string liboper1 = line1.Substring(74, 30).Replace("\"", "");
                                 string montant1 = line1.Substring(104, 12).Replace("\"", "");
     
                                 string requete_biao = "insert into prelevement (codeoper,typeenreg,numsequence,dateremise,codebanq,codeguichet,compte,nom,libbanq,liboper,montant) values('" + codeoper1 + "','" + typeenreg1 + "','" + sequence1 + "','" + dateremise1 + "','" + codebanq1 + "','" + codeguichet1 + "','" + compte1 + "','" + nom1.Replace("'", "") + "','" + libanq1 + "','" + liboper1 + "','" + montant1 + "');";
                                 OleDbDataReader lire_biao = cls.ouvrirRequète(requete_biao, maconnexion);
     
                             }
     
                             catch (Exception ex)
                             {
                                 MessageBox.Show(ex.Message);
     
                             }
     
                              for (int i = 1; i < lignesfichier; i++)
                              {
                                  try
                                  {
                                      if (lignes[i].Length == 116 || lignes[i].Length == 128)
                                      {
     
                                          string codeoper = lignes[i].Substring(0, 2).Replace("\"", "");
                                          string typeenreg = lignes[i].Substring(2, 1).Replace("\"", "");
                                          string sequence = lignes[i].Substring(3, 5).Replace("\"", "");
                                          string dateremise = lignes[i].Substring(8, 6).Replace("\"", "");
                                          string codebanq = lignes[i].Substring(14, 3).Replace("\"", "");
                                          string codeguichet = lignes[i].Substring(17, 5).Replace("\"", "");
                                          string compte = lignes[i].Substring(22, 11).Replace("\"", "");
                                          string nom = lignes[i].Substring(33, 24).Replace("\"", "");
                                          string libanq = lignes[i].Substring(57, 17).Replace("\"", "");
                                          string liboper = lignes[i].Substring(74, 30).Replace("\"", "");
                                          string montant = lignes[i].Substring(104, 12).Replace("\"", "");
     
     
                                          string requete = "insert into prelevement (codeoper,typeenreg,numsequence,dateremise,codebanq,codeguichet,compte,nom,libbanq,liboper,montant) values('" + codeoper + "','" + typeenreg + "','" + sequence + "','" + dateremise + "','" + codebanq + "','" + codeguichet + "','" + compte + "','" + nom.Replace("'", "") + "','" + libanq + "','" + liboper + "','" + montant + "');";
                                          OleDbDataReader lire = cls.ouvrirRequète(requete, maconnexion);
                                      }
                                      else if (lignes[i].Length < 69)
                                      {
                                          string[] ligne_espace = { "Presente d'espace vide en fin de fichier" };
                                          //remplir le fichier erreur.txt avec retour à la ligne
                                          System.IO.File.WriteAllLines(Application.StartupPath + "\\erreur_prelevement.txt", ligne_espace);
                                      }
                                      else
                                      {
                                          string ligne_erreur = lignes[i].Substring(3, 5);
                                          string[] lines_0 = { "Certaines lignes ne comportent pas 123 caractères notamment celle du numéros de sequence suivant :  " + " " + ligne_erreur };
                                          //remplir le fichier erreur.txt avec retour à la ligne
                                          System.IO.File.WriteAllLines(Application.StartupPath + "\\erreur_prelevement.txt", lines_0);
     
     
                                      }
     
                                  }
     
                                  catch (Exception ex)
                                  {
                                      MessageBox.Show(ex.Message);
     
                                  }
                              }
    }

  4. #4
    Membre régulier
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Points : 77
    Points
    77
    Par défaut
    Après plusieurs recherches, il se trouve que cette erreur se produit lorsque vous effectuez une requête dans Access 2010.
    Plus d'informations sur ce lien : https://support.microsoft.com/kb/272...?wa=wsignin1.0

    L'installation de MicrosoftFixit55035.msi m'a permis de résoudre le problème.

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2012
    Messages
    206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 206
    Points : 455
    Points
    455
    Par défaut
    Bonjour,

    Déjà ca peut être très lent car tu écris chaque ligne au fur et à mesure.
    Tu ferais mieux de construire ta chaine de charactère complète dans ta boucle for puis d'écrire le tout dans ton fichier d'un seul coup.

    Il faudrait aussi le détail de OuvrirRequete. Tu es sur que tu dispose bien tes connexion SQL ?

  6. #6
    Membre régulier
    Homme Profil pro
    Technicien réseau
    Inscrit en
    Janvier 2010
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Technicien réseau
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Janvier 2010
    Messages : 119
    Points : 77
    Points
    77
    Par défaut
    Bonjour,

    Déjà ca peut être très lent car tu écris chaque ligne au fur et à mesure.
    Tu ferais mieux de construire ta chaine de charactère complète dans ta boucle for puis d'écrire le tout dans ton fichier d'un seul coup.

    Il faudrait aussi le détail de OuvrirRequete. Tu es sur que tu dispose bien tes connexion SQL ?
    Bonjour chaparo,
    comme je le disais tantôt et selon le lien que j'ai transmis, l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Ressources systèmes insuffisantes
    se produit lorsque vous effectuez une requête comportant un nombre important de données dans la base Access 2010. Mais dans mon cas actuel, l'installation de MicrosoftFixit55035.msi m'a permis de résoudre le problème.

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

Discussions similaires

  1. Accès aux ressources system
    Par regis35510 dans le forum Android
    Réponses: 2
    Dernier message: 21/08/2010, 19h42
  2. [XL-2000] erreur:RESSOURCES SYSTEMES INSUFFISANTES
    Par benexcel2000 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 15/03/2010, 10h27
  3. Ressources système insuffisantes
    Par tedparker dans le forum Access
    Réponses: 3
    Dernier message: 27/09/2006, 11h56
  4. [Stratégie] taille de tableau max pour alleger les ressources systemes
    Par ceres02 dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 24/02/2006, 19h06
  5. Message ressouces systeme insuffisantes
    Par guem dans le forum Access
    Réponses: 1
    Dernier message: 12/12/2005, 07h56

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