Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. General Programming
  3. C#
  4. Streamwriter output

Streamwriter output

Scheduled Pinned Locked Moved C#
17 Posts 5 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Mycroft Holmes

    Pierre besquent wrote:

    How can I import the data from my txt File to copy

    Seems to me you have that backwards, don't you want to ask the user for the folder to save the file into (there is a directory dialog in winforms) and then save it to that path.

    Never underestimate the power of human stupidity RAH

    P Offline
    P Offline
    Pierre besquent
    wrote on last edited by
    #3

    Hi Holmes, my txt file is well saved in my project and contains the data I want. The problem when the user saves it when he wants and then open it he founds: "System.IO.Streamwriter". This is my real problem. ty in advance (don't understand really u sentence :) :" Seems to me you have that backwards" )

    P 1 Reply Last reply
    0
    • P Pierre besquent

      Hi Holmes, my txt file is well saved in my project and contains the data I want. The problem when the user saves it when he wants and then open it he founds: "System.IO.Streamwriter". This is my real problem. ty in advance (don't understand really u sentence :) :" Seems to me you have that backwards" )

      P Offline
      P Offline
      Pete OHanlon
      wrote on last edited by
      #4

      He means give the user the choice of where to save it. Don't arbitrarily force a path on them that they don't want. Your path structure would be no good for me, for instance, because I like to partition my drives so the C drive contains the OS, the D drive contains my applications, and my E drive is my data drive - which automatically gets backed up onto servers (this is a lot simpler because of the partitioning).

      I'm not a stalker, I just know things. Oh by the way, you're out of milk.

      Forgive your enemies - it messes with their heads

      My blog | My articles | MoXAML PowerToys | Onyx

      P 1 Reply Last reply
      0
      • P Pete OHanlon

        He means give the user the choice of where to save it. Don't arbitrarily force a path on them that they don't want. Your path structure would be no good for me, for instance, because I like to partition my drives so the C drive contains the OS, the D drive contains my applications, and my E drive is my data drive - which automatically gets backed up onto servers (this is a lot simpler because of the partitioning).

        I'm not a stalker, I just know things. Oh by the way, you're out of milk.

        Forgive your enemies - it messes with their heads

        My blog | My articles | MoXAML PowerToys | Onyx

        P Offline
        P Offline
        Pierre besquent
        wrote on last edited by
        #5

        Hi Pete, U seem u don't understand my problem well. Me i save my file in a known path of my project (this is absolutely for me) that i write to u. Then I give the user the choice to save his file whatever he likes using this code:

        StreamWriter report = (StreamWriter) GGetValue ("_Report");
        string myPath = (string) this.GGetValue ("myPath");
        this.BodyPage = "list.aspx";
        string file_name = "test.txt";
        string PresenceClientExtension = "txt";
        //if ( report)
        //{
        GRemoveValue ("_Report");
        // Néttoyer le flux en cours.
        this.Response.ClearHeaders ();
        this.Response.Clear ();
        // Re-écrire l'entête.
        this.Response.AddHeader ("content-disposition", "attachment;filename=" + myPath);
        this.Response.ContentType = "application/octet-stream";
        // Re-écrire le contenu.
        this.Response.ContentEncoding = Encoding.GetEncoding ("windows-1252");
        this.Response.Write (report.ToString());
        this.Response.Flush ();
        this.Response.End ();

        All works fine.the problem appears in the user side.when he save his file and open it he founds:"System.IO.Streamwriter" that is not the data that I have in the file on my project. this is my real problem. :) ty

        P 1 Reply Last reply
        0
        • P Pierre besquent

          Hi every body, I wanna generate a .txt file.I use the streamwriter to write my data to a file like this:

          public static StreamWriter BuildTxtFichierVirement (ISReglementViewCollection reglements, ISISalarieCollection salaries, string myPath)
          {
          try
          {
          // Instanciation du StreamWriter avec passage du nom du fichier
          StreamWriter monStreamWriter = new StreamWriter(myPath, true, System.Text.Encoding.ASCII);
          foreach (ISReglementView reglement in reglements)
          {
          #region Date Virement ------------------------
          string strYear = reglement.DateReglement.Year.ToString ();
          string strMonth = "";
          string strDay = "";
          if (reglement.DateReglement.Month > 9)
          strMonth = reglement.DateReglement.Month.ToString ();
          else
          strMonth = "0" + reglement.DateReglement.Month.ToString ();

                      if (reglement.DateReglement.Day > 9)
                          strDay = reglement.DateReglement.Day.ToString ();
                      else
                          strDay = "0" + reglement.DateReglement.Day.ToString ();
          
                      string strDate = strDay + strMonth + (strYear.ToCharArray ()) \[strYear.Length - 1\];
          
                      string          date = reglement.DateReglement.Year.ToString ();
                      #endregion
          
          		    #region Entetes + EuroFranc  ------------------
                      string		        strEnteteHead = "0302";
                      string		        strEnteteBody = "0602";
                      string		        strEnteteSum  = "0802";
                      string		        strEuro     = "E";
          		    string		        strFranc = "F";
                      #endregion
          
          		    #region Données RIB  --------------------------
          		    string agence = "mdmff";
          					string guichet = "hhlkj";
          						string cle = "kjkj";
          							string compte = "lkjlkj" ;
          								string domicilationbancaire = "ljkjol" ;
          		   
          		    #endregion
          
          			//Ecriture du texte dans votre fichier 
          			monStreamWriter.WriteLine(strEnteteHead + Inserer\_Espaces(8) + agence + Inserer\_Espaces(7) + strDate + domicilationbancaire + reglement.ID + Inserer\_Espaces(15) + strEuro + Inserer\_Espaces(5) + guichet + compte + Inserer\_Espaces(47) + agence + Inserer\_Espaces(6)); 
          			monStreamWriter.WriteLine(strEnteteBody +Inserer\_Espaces(8) + agence + reglement.ID + reglement.Nom + reglement.Banque + Inserer\_Espaces(12) + agence + compte + reglement.Montant + agen
          
          L Offline
          L Offline
          Lost User
          wrote on last edited by
          #6

          You should use the SaveFileDialog class to allow the user to choose where to save the file. Here[^] is a link to a number of samples that may help you.

          I must get a clever new signature for 2011.

          P 1 Reply Last reply
          0
          • L Lost User

            You should use the SaveFileDialog class to allow the user to choose where to save the file. Here[^] is a link to a number of samples that may help you.

            I must get a clever new signature for 2011.

            P Offline
            P Offline
            Pierre besquent
            wrote on last edited by
            #7

            Hi, I used it. It appears to the user if he wants to : -open file -save file -cancel after choosing open or save, the user founds in his file " System.IO.streamwriter" this is my difficulty ty

            L 1 Reply Last reply
            0
            • P Pierre besquent

              Hi Pete, U seem u don't understand my problem well. Me i save my file in a known path of my project (this is absolutely for me) that i write to u. Then I give the user the choice to save his file whatever he likes using this code:

              StreamWriter report = (StreamWriter) GGetValue ("_Report");
              string myPath = (string) this.GGetValue ("myPath");
              this.BodyPage = "list.aspx";
              string file_name = "test.txt";
              string PresenceClientExtension = "txt";
              //if ( report)
              //{
              GRemoveValue ("_Report");
              // Néttoyer le flux en cours.
              this.Response.ClearHeaders ();
              this.Response.Clear ();
              // Re-écrire l'entête.
              this.Response.AddHeader ("content-disposition", "attachment;filename=" + myPath);
              this.Response.ContentType = "application/octet-stream";
              // Re-écrire le contenu.
              this.Response.ContentEncoding = Encoding.GetEncoding ("windows-1252");
              this.Response.Write (report.ToString());
              this.Response.Flush ();
              this.Response.End ();

              All works fine.the problem appears in the user side.when he save his file and open it he founds:"System.IO.Streamwriter" that is not the data that I have in the file on my project. this is my real problem. :) ty

              P Offline
              P Offline
              Pete OHanlon
              wrote on last edited by
              #8

              Ah, I see what you are saying. The problem occurs because you are using the ToString() method of StreamWriter when you do report.ToString();. This just writes out the name of the class. All you really need to do is write out a simple string value (that's what is being expected by Response.Write which is a stream writer in it's own right). Simply read the data you need and store it in a string (there are many suitable ways of doing this), and pass that into Response.Write instead.

              I'm not a stalker, I just know things. Oh by the way, you're out of milk.

              Forgive your enemies - it messes with their heads

              My blog | My articles | MoXAML PowerToys | Onyx

              P 1 Reply Last reply
              0
              • P Pierre besquent

                Hi, I used it. It appears to the user if he wants to : -open file -save file -cancel after choosing open or save, the user founds in his file " System.IO.streamwriter" this is my difficulty ty

                L Offline
                L Offline
                Lost User
                wrote on last edited by
                #9

                Pierre besquent wrote:

                after choosing open or save, the user founds in his file " System.IO.streamwriter"

                Sorry, but I don't understand this sentence, could you clarify?

                I must get a clever new signature for 2011.

                P P 2 Replies Last reply
                0
                • L Lost User

                  Pierre besquent wrote:

                  after choosing open or save, the user founds in his file " System.IO.streamwriter"

                  Sorry, but I don't understand this sentence, could you clarify?

                  I must get a clever new signature for 2011.

                  P Offline
                  P Offline
                  Pete OHanlon
                  wrote on last edited by
                  #10

                  He's saying that the file contains the name of the class, not the output he's expecting - not surprising since he's used StreamWriter.ToString().

                  I'm not a stalker, I just know things. Oh by the way, you're out of milk.

                  Forgive your enemies - it messes with their heads

                  My blog | My articles | MoXAML PowerToys | Onyx

                  1 Reply Last reply
                  0
                  • P Pierre besquent

                    Hi every body, I wanna generate a .txt file.I use the streamwriter to write my data to a file like this:

                    public static StreamWriter BuildTxtFichierVirement (ISReglementViewCollection reglements, ISISalarieCollection salaries, string myPath)
                    {
                    try
                    {
                    // Instanciation du StreamWriter avec passage du nom du fichier
                    StreamWriter monStreamWriter = new StreamWriter(myPath, true, System.Text.Encoding.ASCII);
                    foreach (ISReglementView reglement in reglements)
                    {
                    #region Date Virement ------------------------
                    string strYear = reglement.DateReglement.Year.ToString ();
                    string strMonth = "";
                    string strDay = "";
                    if (reglement.DateReglement.Month > 9)
                    strMonth = reglement.DateReglement.Month.ToString ();
                    else
                    strMonth = "0" + reglement.DateReglement.Month.ToString ();

                                if (reglement.DateReglement.Day > 9)
                                    strDay = reglement.DateReglement.Day.ToString ();
                                else
                                    strDay = "0" + reglement.DateReglement.Day.ToString ();
                    
                                string strDate = strDay + strMonth + (strYear.ToCharArray ()) \[strYear.Length - 1\];
                    
                                string          date = reglement.DateReglement.Year.ToString ();
                                #endregion
                    
                    		    #region Entetes + EuroFranc  ------------------
                                string		        strEnteteHead = "0302";
                                string		        strEnteteBody = "0602";
                                string		        strEnteteSum  = "0802";
                                string		        strEuro     = "E";
                    		    string		        strFranc = "F";
                                #endregion
                    
                    		    #region Données RIB  --------------------------
                    		    string agence = "mdmff";
                    					string guichet = "hhlkj";
                    						string cle = "kjkj";
                    							string compte = "lkjlkj" ;
                    								string domicilationbancaire = "ljkjol" ;
                    		   
                    		    #endregion
                    
                    			//Ecriture du texte dans votre fichier 
                    			monStreamWriter.WriteLine(strEnteteHead + Inserer\_Espaces(8) + agence + Inserer\_Espaces(7) + strDate + domicilationbancaire + reglement.ID + Inserer\_Espaces(15) + strEuro + Inserer\_Espaces(5) + guichet + compte + Inserer\_Espaces(47) + agence + Inserer\_Espaces(6)); 
                    			monStreamWriter.WriteLine(strEnteteBody +Inserer\_Espaces(8) + agence + reglement.ID + reglement.Nom + reglement.Banque + Inserer\_Espaces(12) + agence + compte + reglement.Montant + agen
                    
                    L Offline
                    L Offline
                    Luc Pattyn
                    wrote on last edited by
                    #11

                    your code could be simplified quite a bit: 1. formatting numbers with specified width: use custom number formatting, so replace

                    if (reglement.DateReglement.Month > 9)
                    strMonth = reglement.DateReglement.Month.ToString ();
                    else
                    strMonth = "0" + reglement.DateReglement.Month.ToString ();

                    by

                    strMonth = reglement.DateReglement.Month.ToString ("D2");

                    2. getting last character of a number: use modulo 10, so replace

                    string strYear = reglement.DateReglement.Year.ToString ();
                    s=(strYear.ToCharArray ()) [strYear.Length - 1];

                    by

                    s=(reglement.DateReglement.Year%10).ToString();

                    3. FYI: If you were to require two-digit year numbers, the whole lot could collapse to a single line of code:

                    strDate=reglement.DateReglement.ToString("ddMMyy");

                    If interested, maybe read this[^]. 4. And I assume Inserer_Espaces(N) just returns the number of spaces specified, something new string(' ', N) does too. BTW: are you familiar with string.PadLeft() and string.PadRight()? :)

                    Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum

                    Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.

                    P 1 Reply Last reply
                    0
                    • L Lost User

                      Pierre besquent wrote:

                      after choosing open or save, the user founds in his file " System.IO.streamwriter"

                      Sorry, but I don't understand this sentence, could you clarify?

                      I must get a clever new signature for 2011.

                      P Offline
                      P Offline
                      Pierre besquent
                      wrote on last edited by
                      #12

                      hi, when the user choose " open" or "save" icon (in the dialog appears to him),then he opens his file,it contains just "System.IO.Streamwriter" ty

                      1 Reply Last reply
                      0
                      • L Luc Pattyn

                        your code could be simplified quite a bit: 1. formatting numbers with specified width: use custom number formatting, so replace

                        if (reglement.DateReglement.Month > 9)
                        strMonth = reglement.DateReglement.Month.ToString ();
                        else
                        strMonth = "0" + reglement.DateReglement.Month.ToString ();

                        by

                        strMonth = reglement.DateReglement.Month.ToString ("D2");

                        2. getting last character of a number: use modulo 10, so replace

                        string strYear = reglement.DateReglement.Year.ToString ();
                        s=(strYear.ToCharArray ()) [strYear.Length - 1];

                        by

                        s=(reglement.DateReglement.Year%10).ToString();

                        3. FYI: If you were to require two-digit year numbers, the whole lot could collapse to a single line of code:

                        strDate=reglement.DateReglement.ToString("ddMMyy");

                        If interested, maybe read this[^]. 4. And I assume Inserer_Espaces(N) just returns the number of spaces specified, something new string(' ', N) does too. BTW: are you familiar with string.PadLeft() and string.PadRight()? :)

                        Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum

                        Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.

                        P Offline
                        P Offline
                        Pierre besquent
                        wrote on last edited by
                        #13

                        Hi Luc, thank u a lot for the simplification of my code.I wanna know a solution for my problem :) ty

                        P L 2 Replies Last reply
                        0
                        • P Pierre besquent

                          Hi Luc, thank u a lot for the simplification of my code.I wanna know a solution for my problem :) ty

                          P Offline
                          P Offline
                          Pete OHanlon
                          wrote on last edited by
                          #14

                          I told you what the solution was. I just didn't write the code for you - that's up to you.

                          I'm not a stalker, I just know things. Oh by the way, you're out of milk.

                          Forgive your enemies - it messes with their heads

                          My blog | My articles | MoXAML PowerToys | Onyx

                          1 Reply Last reply
                          0
                          • P Pierre besquent

                            Hi Luc, thank u a lot for the simplification of my code.I wanna know a solution for my problem :) ty

                            L Offline
                            L Offline
                            Luc Pattyn
                            wrote on last edited by
                            #15

                            you already got the solution from others. overall suggestion: use fewer ToString() calls, they often are redundant, wasteful, and sometimes wrong. :)

                            Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum

                            Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.

                            P 1 Reply Last reply
                            0
                            • P Pete OHanlon

                              Ah, I see what you are saying. The problem occurs because you are using the ToString() method of StreamWriter when you do report.ToString();. This just writes out the name of the class. All you really need to do is write out a simple string value (that's what is being expected by Response.Write which is a stream writer in it's own right). Simply read the data you need and store it in a string (there are many suitable ways of doing this), and pass that into Response.Write instead.

                              I'm not a stalker, I just know things. Oh by the way, you're out of milk.

                              Forgive your enemies - it messes with their heads

                              My blog | My articles | MoXAML PowerToys | Onyx

                              P Offline
                              P Offline
                              Pierre besquent
                              wrote on last edited by
                              #16

                              Hi, Can u please explain to me more "(that's what is being expected by Response.Write which is a stream writer in it's own right). Simply read the data you need and store it in a string (there are many suitable ways of doing this), and pass that into Response.Write instead. I don't understand well u solution. ty

                              1 Reply Last reply
                              0
                              • L Luc Pattyn

                                you already got the solution from others. overall suggestion: use fewer ToString() calls, they often are redundant, wasteful, and sometimes wrong. :)

                                Luc Pattyn [Forum Guidelines] [My Articles] Nil Volentibus Arduum

                                Please use <PRE> tags for code snippets, they preserve indentation, improve readability, and make me actually look at the code.

                                P Offline
                                P Offline
                                Pierre besquent
                                wrote on last edited by
                                #17

                                Hi, I found now the solution :laugh: . I use the streamreader like this:

                                StreamReader report = (StreamReader) GGetValue ("_Report");
                                string myPath = (string) this.GGetValue ("myPath");
                                string ligne = report.ReadLine ();
                                this.BodyPage = "list.aspx";
                                string file_name = "test.txt";
                                string PresenceClientExtension = "txt";
                                // Lecture de toutes les lignes et affichage de chacune sur la page
                                GRemoveValue ("_Report");
                                // Néttoyer le flux en cours.
                                this.Response.ClearHeaders ();
                                this.Response.Clear ();
                                // Re-écrire l'entête.
                                this.Response.AddHeader ("content-disposition", "attachment;filename=" + myPath);
                                this.Response.ContentType = "text/txt";
                                // Re-écrire le contenu.
                                this.Response.ContentEncoding = Encoding.GetEncoding ("windows-1252");
                                while (ligne != null)
                                {
                                this.Response.Write (ligne);
                                this.Response.Write("</br>");
                                this.Response.Flush ();
                                ligne = report.ReadLine();
                                }
                                this.Response.End ();
                                report.Close ();

                                All works fine now Thank u a lot for u all for u big help ;)

                                1 Reply Last reply
                                0
                                Reply
                                • Reply as topic
                                Log in to reply
                                • Oldest to Newest
                                • Newest to Oldest
                                • Most Votes


                                • Login

                                • Don't have an account? Register

                                • Login or register to search.
                                • First post
                                  Last post
                                0
                                • Categories
                                • Recent
                                • Tags
                                • Popular
                                • World
                                • Users
                                • Groups