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

Messages postés
104
Date d'inscription
mardi 27 novembre 2007
Dernière intervention
16 juillet 2010
- - Dernière réponse : sghchafaa
Messages postés
104
Date d'inscription
mardi 27 novembre 2007
Dernière intervention
16 juillet 2010
- 17 juil. 2008 à 08:10
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.
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
104
Date d'inscription
mardi 27 novembre 2007
Dernière intervention
16 juillet 2010
3
Merci
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.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 91 internautes nous ont dit merci ce mois-ci

Commenter la réponse de sghchafaa
Messages postés
104
Date d'inscription
mardi 27 novembre 2007
Dernière intervention
16 juillet 2010
0
Merci
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.
Commenter la réponse de sghchafaa
Messages postés
1163
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
21 octobre 2010
18
0
Merci
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
Commenter la réponse de leprov
Messages postés
104
Date d'inscription
mardi 27 novembre 2007
Dernière intervention
16 juillet 2010
0
Merci
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.
Commenter la réponse de sghchafaa

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.