C#读取.txt文件,存储其数据并编辑文件

时间:2017-08-13 12:41:24

标签: c# visual-studio file readfile windows-forms-designer

我正在尝试做一些非常简单的事情。我正在制作一个Windows表单应用程序,它本质上是一个简单的“学生成绩计算器”。我有表格工作,它可以读取文件并在文本框中显示其数据。但是,我需要将每行的列存储在自己的字段中。

您可以在下面看到它应该读取/编辑/保存的文件示例。

enter image description here

这是我目前用来读取文件的内容:

      private void LoadFile()
    {
        string lineFromFile;

        fileContentTextBox.Clear();

        try
        {
            using (StreamReader reader = new StreamReader(fileName))
            {
                while (!reader.EndOfStream)
                {
                    lineFromFile = reader.ReadLine();

                    fileContentTextBox.AppendText(lineFromFile);

                    fileContentTextBox.AppendText(Environment.NewLine);
                }
            }

那么,我怎样才能将其数据存储在以下字段中:

  • moduleCode1“SOFT152”
  • examWeighting1“0.3”
  • courseworkeMark1“65”
  • 等。

我知道你必须使用这样的东西,但我不确定如何在这种情况下使用它,我需要将文件的数据存储在许多单独的字段中?

    lines[i].Split(',')

表单中的输出最终会看起来像这样:

enter image description here

如果有更好的方法可以做到这一点,比如把每一行都放到一个字符串然后将它分开,请告诉我。

1 个答案:

答案 0 :(得分:1)

我无法用手机上的代码描述,但我会这样做:

创建一个新课程,如果需要,可以将其称为学生。在学生中,创建您需要的属性(例如标记,称重)。

在主程序中,创建一个新的学生列表。

在你的while循环中,你读取该行,创建一个新学生。然后,将该行拆分为您的字符串数组。按索引访问字符串数组,获取属性并将值分配给学生属性。

最后,将创建的学生添加到学生列表中。

使用某些代码进行更新

好的,让我们假设您正在为学生创建一个地址簿。

您将拥有Student课程:

public class Student
{
     public string Name {get;set;}
     public int Age {get;set;}
}

然后在您的主程序中,您需要创建一个列表来存储您的学生:

var students = new List<Student>();

最后,您要阅读文件,创建学生并将他/她添加到列表中:

while (!reader.EndOfStream)
{
     var student = new Student();
     ineFromFile = reader.ReadLine();
     var arrayOfProperties = ineFromFile.Split();
     student.Name = arrayOfProperties[0]; #Make sure you know the indices, or you will have to create a custom parser ;)
     student.Age = (int)arrayOfProperties[1]; #Remember to convert from string.
     students.Add(student); # add your student!
}