我有一个文本文件,格式如下:
1234
ABC123 1000 2000
第一个整数值是权重,下一行有三个值,即产品代码,重量和成本,此行可以重复任意次。每个值之间都有一个空格。
我已经能够在文本文件中读取,将第一行的第一个值存储到变量中,然后将后续行存储到数组中,然后使用第一个readline.split('')将其存储到列表中。
对我而言,这似乎是一种效率低下的方式,我一直试图找到一种方法,我可以从第二行读取产品代码,重量和成本列在列表中而无需使用数组。我的列表控件包含一个对象,我只存储重量和成本,而不是产品代码。
有没有人知道如何阅读文本文件,从文件中直接将一些值带入列表控件?
由于
答案 0 :(得分:1)
你所做的是正确的。没有通用的方法,因为你所做的是你为它描述了算法,必须以某种方式编码或参数化。
答案 1 :(得分:0)
由于您的文本文件不像CSV文件那样结构化,因此这种手动解析可能是您最好的选择。
C#没有像Java一样的Scanner
类,所以你在BCL中不存在,尽管你可以write your own。
答案 2 :(得分:0)
其他答案是正确的 - 对此没有通用的解决方案。
如果你有一个相对较小的文件,你可以使用File.ReadAllLines(),这至少会消除很多琐事,因为它会立即将它转换为字符串数组。
答案 3 :(得分:0)
如果您不想从文件中解析字符串并保留用于保存拆分字符串的附加内存,则可以使用二进制格式将信息存储在文件中。然后,您可以使用BinaryReader
,ReadInt32()
等方法使用课程ReadDouble()
。它比字符读取更有效。
但有一点:二进制格式很难被人类阅读。在编辑器中编辑文件很困难。但是以编程方式 - 没有任何问题。