Comment créer une boucle de lecture d'une chaine de caractére?? [Résolu]

Signaler
Messages postés
104
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
16 juillet 2010
-
sghchafaa
Messages postés
104
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
16 juillet 2010
-
Bonjour;
J'essaye de crée une petite application qui sert ecrire dans un fichier
TXT a partir de l'interface console de C#;;mais plusieurs problèmes se
posent dans ce cadre:
     1-quand j'écris 4 caractères,j'obtiens  un fichier TXT de talle98.4Mo,c'est
trés énorme quand meme!!!!!!n'est ce pas!!!,ce que je savais que le
codage ASCII est adopter our les textes,et ne prend pas assez de taille

     
2-j'ai essayer par des multiples façon de produire une application qui
écris infinément de chaines de caractére, telle que la chaine '9999'
est la condition d'arrêt;mais sans resultat .

 //Ouvrir le fichier
                StreamWriter sw = new StreamWriter("C:\\CODE-SOURS.txt", true, Encoding.ACSII);
                Console.WriteLine("Maintenant vous pouvez Ecrire ce que vous voulez,Une fois que vous voulez");
                Console.WriteLine("Quitter l'editeur taper '9999' et validez par 'entrer'");
                Console.WriteLine();
                string s = Console.ReadLine();
               while (s != "9999")
               {
                    //Ecrire Les lignes désirées .

                    sw.WriteLine(s);
                      il y a quelque chose qui manque ici,mais je l'est pas trouvé
                }
                //fermer le fichier
                sw.Close();
            }

Merci bien de votre aide.

4 réponses

Messages postés
104
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
16 juillet 2010

Bonjour;
c'est bon les amis,j'ai trouver la solution

c'est juste que j'ete un peut fatiguer,c'est pour ce la que j'ai pas
trouver la solution qui est trés banale, désoler une autre fois,,alors
la solution consiste a relire une autre chaine de caractére,pour la
revérifier en sortant de la boucle while;;j'ai coloréé les changemen,je
pense que vous pouvez distingé la differance et par la suite la solution


//Ouvrir le fichier

                StreamWriter sw = new StreamWriter("C:\\SghC.txt", true, Encoding.ASCII);

                Console.WriteLine("Maintenant vous pouvez Ecrire ce que vous voulez,Une fois que vous voulez");

                Console.WriteLine("Quitter l'editeur taper '9999' et validez par 'entrer'");

                Console.WriteLine();

                string s = Console.ReadLine();

               while (s != "9999")

               {

                    //Ecrire Les lignes désirées .


                    sw.WriteLine(s);

                    

                    Console.WriteLine();

                    s = Console.ReadLine();

                }

                //fermer le fichier

                sw.Close();

            }

Merci bien de votre aide.
Messages postés
104
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
16 juillet 2010

Bonjour;

Mais pouratnt j'ai pas trouver une explcation pou la 1ér probleme oû le
fichier est de taille extrême elle peut arriver trés facilement a 2.5Go
e tapant une courte phrase de 30 caractere par exemple
C'est drole, n'est ce pas????????PAS d'explication?????????????

Merci bien de votre aide.
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
16
il suffisait de lire la doc : console.readline renvoie null reference si ya rien a lire, et streamwriter.writeline écrit un retour chariot si tu passe référence null en paramètre. en bref, tu écrit en boucle des retours chariots dans ton fichier (car readline ne te bloque pas, il ne fait que lire). tu dois attendre et ne pas réécrire si rien n'est lu, tout simplement
Messages postés
104
Date d'inscription
mardi 27 novembre 2007
Statut
Membre
Dernière intervention
16 juillet 2010

Bonjour;

je pense que la grande taille (génere par le premier code en haut) est du au bouclage infinie de la WHILE,sa veut dire que l'application lis la chaine introduite et la réecrie infinement de fois dans le fichiet TXTce qui génére un trés grande taille,, cette meme taille se différe du temps d'intervention de l'utilisateur a fermer le console, par exemple si l'utilisateur verme le console aprés 30 secondes il y  auras une taille de 100Mo et s'il le fait aprés 5min, il obtiendras 2 Go par exemple;;
c'est logique non???????

Merci bien de votre aide.