Advertise with us

Reading from a textfile to retrieve values using C#

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;
    }
}
Last updated:6/7/2015 11:47:30 AM

2 Answers

Sumit Kesarwani
Sumit Kesarwani

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

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();
        }
    }
}

Answer