Home > DeveloperSection > Forums > Reading from a textfile to retrieve values using C#
Manoj Bhatt
Manoj Bhatt

Total Post:153

Points:1079
Posted on    September-04-2013 1:59 AM

 C# C# 
Ratings:


 2 Reply(s)
 1481  View(s)
Rate this:

Use Notepad to place the following values in a text file: 86, 97, 144, 26.To simplify the problem, the values can each be placed on separate lines.Write a C# program to retrieve the values from the text file and print the average of the values, formatted with two decimal places.

However, I keep getting error messages when I compile my code. I have listed my code below for you to view, and to offer me any feedback on what to do to correct my code.

   using System;

      using System.Collections.Generic;

      using System.ComponentModel;

      using System.Data;

      using System.Drawing;

      using System.IO;

      using System.Linq;

      using System.Text;

      using System.Threading.Tasks;

      using System.Windows.Forms;

namespace ReadTextFileApp

{

public class ReadTextFileApp : System.Windows.Forms.Form

{

    public ReadTextFileApp()

    {

        InitializeComponent();

    }

    private void ReadTextFileApp_Load(object sender, EventArgs e)

    {

        string inValue;

        string data;

        inFile = new StreamReader("name.txt", true);

    }

    private void btnDisplayValues_Click(object sender, EventArgs e)

    {

        string inValue;

        int count = 0;

        int total = 0;

this.lblDisp.Text = "";

        if(File.Exists("name.txt"))

    {

        try

        {

            inFile = new StreamReader{"name.txt");

            while ((inValue = inFile.ReadLine()) |= null)

            {

                count++;

                this.lblDisp.Text += "     " + inValue;

                total += int.Parse(inValue);

            }

            average = (double)

                total / count;

            }

            catch(System.IO.IOException exc)

            {

                this.lblDisp.Text = exc.Message;

            }

        }

        else

        {

            this.lblDisp.Text = "File Unavailable";

        }

        this.lblDisp.Visible = true;

    {

    private void ReadTextFileApp_Closing(object sender,  System.ComponentModel.CancelEventArgs e)                                                

    {

        try

        {

            inFile.Close();

        }

        catch

        {

        }

    }

    private void btnCalcDispAve_Click(object sender, EventArgs e)

    {

        this.lblAve.Text = "";

        this.lblAve.Text = "    " + average.ToString();

        this.lblAve.Visible = true;

    }

}



Sumit Kesarwani

Total Post:378

Points:2694
Posted on    September-04-2013 7:01 AM

Hi Manoj,

You have many, many syntax errors in your program

Where is inFile declared?

inFile = new StreamReader("name.txt", true);

You have a brace instead of a bracket on this line:

inFile = new StreamReader{"name.txt");

You are bitwise OR-EQUALING the string value on this line:

while ((inValue = inFile.ReadLine()) |= null)

Joosh Seerden
Joosh Seerden

Total Post:1

Points:7
Posted on    June-07-2015 11:47 AM

using System;
using System.IO;



namespace PRG321WK3Assignment3
{
    class Program
    {
        static void Main(string[] args)
        {
            string inValue;
            int count = 0;
            double sum = 0;
            double average;

            try
            {
                StreamReader inStream = new StreamReader("values.txt");

                while ((inValue = inStream.ReadLine()) != null)
                {
                    sum += Convert.ToInt16(inValue);
                    count++;
                }
                average = sum / count;

                Console.WriteLine("The average is: {0:f2}", average);

            }
            catch (IOException e)
            {
                Console.WriteLine("Exception!  " + e.Message);
            }


            Console.Read();
        }
    }
}


Don't want to miss updates? Please click the below button!

Follow MindStick