Home > Blockchain >  C# How can I write console output to a file?
C# How can I write console output to a file?

Time:04-13

I need to get my console output to a text file also. How can this be possible with the following code? I hope that a routined person can help me out :-)

namespace MyProject
{
    // Creating a class for salesmen
    class Person
    {
        // Variables for the salesmen
        public string name;
        public long personNumber;
        public string district;
        public int soldArticles;

        // Constructor for the class
        public Person(string name, long personNumber, string district, int soldArticles)
        {
            this.name = name;
            this.personNumber = personNumber;
            this.district = district;
            this.soldArticles = soldArticles;
        }

        // Method to read input from user about the salesmen
        public static Person ReadSeller()
        {
            Console.Write("\nEnter name of the salesman: ");
            string name = Console.ReadLine();

            Console.Write("\nPlease enter person number: ");
            long personNumber = long.Parse(Console.ReadLine());

            Console.Write("\nPlease enter what district you operate in:  ");
            string district = Console.ReadLine();

            Console.Write("\nPlease enter amount of sold articles: ");
            int soldArticles = int.Parse(Console.ReadLine());

            return new Person(name, personNumber, district, soldArticles);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {          
            // prompt user to enter how many salesmen there are in the salesforce
            Console.Write("\nHow many salesmen are you in the salesforce? ");
            int numOfSalesmen = int.Parse(Console.ReadLine());

            // List that holds the salesmen
            List<Person> sellers = new List<Person>();

            // for loop that will iterate through the given amount of salesmen
            for (int i = 1; i <= numOfSalesmen; i  )
            {
                Console.WriteLine("\nPlease fill in data for salesman {0}", i);
                sellers.Add(Person.ReadSeller());
                Console.WriteLine("--------------------------------------------------");
            }

            // sort the list with bubblesort 
            SortByBubblesort(sellers);

            // print the salesmen
            PrintSalesmen(sellers);
        }

        // This method sorts the List Person with the bubblesort method from least to most sold articles.
        static List<Person> SortByBubblesort(List<Person> sellers)
        {
            int timesNumbersChanged;
            do
            {
                timesNumbersChanged = 0;

                for (int i = 0; i < sellers.Count - 1; i  )
                {
                    if (sellers[i].soldArticles > sellers[i   1].soldArticles)
                    {
                        Person salesman = sellers[i];
                        sellers.RemoveAt(i);
                        sellers.Insert(i   1, salesman);
                        timesNumbersChanged  = 1;
                    }
                }
            } while (timesNumbersChanged != 0);

            return sellers;
        }

        // This method prints the salesmen in the order of what level they belong to.
        static List<Person> PrintSalesmen(List<Person> sellers)
        {
            //  Constants & variables 
            const int LEVEL_ONE = 50;
            const int LEVEL_TWO = 99;
            const int LEVEL_THREE = 199;
            const int LEVEL_FOUR = 200;
            int count = 0;

            // headline for the output
            Console.WriteLine("{0,-20} {1,-20} {2,-10} {3,-10}", "Name", "Person number", "District", "Articles sold");

            // Counts how many salesmen that belongs to level 1
            foreach (Person salesman in sellers)
            {
                if (salesman.soldArticles < LEVEL_ONE)
                {
                    count  ;

                    Console.Write("\n{0,-20} {1,-20} {2,-10} {3,-10}", salesman.name, salesman.personNumber, salesman.district, salesman.soldArticles);
                }
            }

            // bottomline for level 1.
            Console.WriteLine("\n"   count   " Salesmen reached level 1: Under 50 articles");

            // Counts how many salesmen that belong to level 2
            count = 0;

            foreach (Person salesman in sellers)
            {
                if (salesman.soldArticles >= LEVEL_ONE && salesman.soldArticles <= LEVEL_TWO)
                {
                    count  ;

                    Console.Write("\n{0,-20} {1,-20} {2,-10} {3,-10}", salesman.name, salesman.personNumber, salesman.district, salesman.soldArticles);
                }
            }

            // bottomline for level 2.
            Console.WriteLine("\n"   count   " Salesmen reached level 2: 50-99 articles");

            // Counts how many salesmen that belongs to level 3
            count = 0;

            foreach (Person salesman in sellers)
            {
                if (salesman.soldArticles > LEVEL_TWO && salesman.soldArticles <= LEVEL_THREE)
                {
                    count  ;

                    Console.Write("\n{0,-20} {1,-20} {2,-10} {3,-10}", salesman.name, salesman.personNumber, salesman.district, salesman.soldArticles);
                }
            }

            // bottomline for level 3.
            Console.WriteLine("\n"   count   " Salesmen reached level 3: 100-199 articles");

            // Counts how many salesmen that belongs to level 4
            count = 0;

            foreach (Person salesman in sellers)
            {
                if (salesman.soldArticles >= LEVEL_FOUR)
                {
                    count  ;

                    Console.Write("\n{0,-20} {1,-20} {2,-10} {3,-10}", salesman.name, salesman.personNumber, salesman.district, salesman.soldArticles);
                }
            }

            // bottomline for level 4.
            Console.WriteLine("\n"   count   " Salesmen reached level 4: Over 199 articles");
            return sellers;
        }
    }
}

CodePudding user response:

Use Console.SetOut(...) https://docs.microsoft.com/en-us/dotnet/api/system.console.setout?view=net-6.0.

In general I would suggest to replace Console with an logging framework. e.g. Log4Net: https://stackify.com/log4net-guide-dotnet-logging/

CodePudding user response:

Check this out it should be very easy to follow what they did in this tutorial. Hope it helps. Write to File Example

  •  Tags:  
  • c#
  • Related