【问题标题】:importing txt file and manipulating string to do calculations?导入 txt 文件并操作字符串进行计算?
【发布时间】:2013-03-25 18:08:31
【问题描述】:

在 VB2010 中,我需要处理一个包含多行的文本文件,如下所示:

学生姓名, 65, 42, 71, 55
学生姓名 2、40、42、54、45
等

我需要处理文件,发现:

  1. 每位用户获得的年终总成绩和评分
  2. 获得最高分的学生
  3. 平均总分
  4. 达到用户可以指定的特定成绩的学生列表。

成绩:70% - 100% = D,60% - 70% = P1,50% - 60% = P2,40% - 50% = P3,0% - 39% = F

我正在尝试将数据结构放入公共类

Structure Student
    Dim name as String
    Dim Paper1 as String
    Dim Paper2 as String
    Dim Paper3 as String
    DIm Paper4 as String.
End Structure

'I am also trying to to do an array
Dim Students() as Student

'Open txt File

Dim FileStreamReader As IO.StreamReader
FileStreamReader = IO.File.OpenText("c:/textfile.txt")

一次读取一行文件

While not fileStreamReader.EndofStream
    Dim linein as String
    linein = FileStreamReader.readline()

我有两个主要问题:

  1. 我是否在正确的轨道上,如果是这样,
  2. 有什么方法可以处理 txt 文件中的信息吗?我已经尝试了好几天,但总是出错!

【问题讨论】:

  • 您是否可以像这样存储此信息:___ "Paul Smith; 23,75,77,59,81" 或 "Paul Smith;23,75,77,59,81"或“保罗·史密斯;23、75、77、59、81”___?
  • 否,如上需要用逗号分隔。有任何想法吗?我一直在尝试使用 mid、len 和 instr,但老实说我不知道​​如何正确使用它们

标签: vb.net visual-studio-2010 .net-4.0


【解决方案1】:

您应该使用专用的 csv 解析器来解析文件中的行。不要使用正则表达式。不要使用 String.Split()。不要尝试自己编写。您可以使用 Microsoft.VisualBasic.TextFieldParser 类。

您不应该使用具有可更改字段的结构。将其设为类而不是结构,或将所有字段设为只读(无公共 Set 选项)并仅更改构造函数中的字段。

【讨论】:

  • 对不起乔尔 - 我对此有点陌生。感谢您的建议 - 我会用谷歌搜索 textfieldparser 类
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-04-29
  • 2023-03-24
  • 1970-01-01
  • 2022-01-12
  • 1970-01-01
  • 2022-01-06
  • 1970-01-01
相关资源
最近更新 更多