如何从文本文件中获取数据并将其分割为数组?

问题描述:

我有一个项目,我需要将文本文件中的数据拆分成一个数组或一个“结构数组”,就像我的教授所说的那样,我对如何去做这件事感到非常困惑。如何从文本文件中获取数据并将其分割为数组?

基本上我有在文本文件中设置这样的数据(不必是这样..可以是每行一个事):

PR214;MR43T;RBL8;14K22 
PR223;R43;RJ6;14K24 
PR224;R43N;RN4;14K30 
PR246;R46N;RN8;14K32 
PR247;R46TS;RBL17Y;14K33 
PR248;R46TX;RBL12-6;14K35 
PR324;S46;J11;14K38 
PR326;SR46E;XEJ8;14K40 
PR444;47L;H12;14K44 

在第一列中的数字(PR。 ..)代表一个CCC号码。第二,第三和第四列代表三家不同公司的部件号(第2列是一个公司,第3列另一个等)。用户会通过选择一个单选按钮然后输入部分(即公司3和“RJ6”)来告诉我公司和公司下的部件号,然后我应该给客户提供CCC编号( “PR223”)。

我不是要求你们为我做我的功课,但我很难掌握阵列。你能否指出我该如何去做这件事?

您可以使用StreamReader的ReadLine方法一次读取一行文件。然后,您可以使用String.Split(char[])方法获取每行中值的字符串数组。如果你已经知道如何制作结构,你应该设置。

如果你看看每一行数据,'列'之间有一个共同的分隔符,所以你想要将每行split分成四个独立的实体。当你通过 行工作并获得那四个离散元素时,应该可以将每个元素分配给相应的结构部分。你当然会为每条线有一个“结构”,所以最后这里有一个结构阵列。

其他答案是正确的。您可以从文本文件中读取每行,并将值插入到由数据定义的结构中。对于每一个新行你都需要使用该结构的一个实例,所以你要做的只是一组结构的数组结构。

如果你正在努力理解数组,你真的需要在这方面努力。想想像一组盒子这样的数组。我们从行中的3个盒子开始。每个尺寸都相同,只能容纳适合它们的内容。您可以将项目类型(数据)分配给框,但所有框都只能保存该类型的项目。这些框的编号从0到2.在某些语言中,您可以命名框(关联数组),但不能使用C#AFAIK。所以这给你一个一维数组。

对于两个棋盘格的棋盘阵列。你知道如何记录一场国际象棋比赛吗?国际象棋符号使用A到H作为水平位置,1到8作为垂直位置。所以白女王开始在D1位置。现在,如果我编程一个国际象棋游戏,我会像国际象棋棋盘一样使用8x8阵列。当然,我阵列上的编号在0-7和0-7之间。然后,我的阵列中的白色女王的位置将是[3] [0]。因此,将数据放置在二维数组中就像将棋子放在棋盘上一样。游戏战舰是二维数组的另一个例子。

向阵列添加维度就像为图形添加新的坐标。您从X开始,然后您添加Y并添加Z。等等等等。