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

sghchafaa 104 Messages postés mardi 27 novembre 2007Date d'inscription 16 juillet 2010 Dernière intervention - 16 juil. 2008 à 12:41 - Dernière réponse : sghchafaa 104 Messages postés mardi 27 novembre 2007Date d'inscription 16 juillet 2010 Dernière intervention
- 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
sghchafaa 104 Messages postés mardi 27 novembre 2007Date d'inscription 16 juillet 2010 Dernière intervention - 16 juil. 2008 à 13:01
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.

Merci sghchafaa 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de sghchafaa
sghchafaa 104 Messages postés mardi 27 novembre 2007Date d'inscription 16 juillet 2010 Dernière intervention - 16 juil. 2008 à 13:10
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
leprov 1163 Messages postés vendredi 23 juillet 2004Date d'inscription 21 octobre 2010 Dernière intervention - 16 juil. 2008 à 15:14
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
sghchafaa 104 Messages postés mardi 27 novembre 2007Date d'inscription 16 juillet 2010 Dernière intervention - 17 juil. 2008 à 08:10
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.