0

正如我的教授所说,我有一个项目需要将文本文件中的数据拆分为数组或“结构数组”,但我对如何去做感到很困惑。

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

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 列和第 4 列代表三个不同公司的零件编号(第 2 列是一家公司,第 3 列是另一家公司,依此类推)。用户会告诉我公司,以及公司下的零件号,方法是选择一个单选按钮,然后输入零件(即公司 3 和“RJ6”),然后我应该给客户 CCC 号( “PR223”)。

我不是要你们为我做作业,但我很难掌握数组。你能指出我如何去做这件事吗?

4

3 回答 3

1

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

如果你在努力理解数组,你真的需要努力。将数组想象成一组盒子。让我们从一行中的 3 个盒子开始。每个都是相同的大小,只能容纳它们里面的东西。您可以将项目类型(数据)分配给框,但所有框只能容纳该类型的项目。框从 0 到 2 编号。在某些语言中,您可以命名框(关联数组),但不能在 C# AFAIK 中命名。所以这给了你一个一维数组。

对于二维数组,请考虑棋盘。你知道如何记录国际象棋比赛吗?国际象棋符号使用 A 到 H 表示水平位置,使用 1 到 8 表示垂直位置。所以白皇后从位置 D1 开始。现在,如果我正在编写一个国际象棋游戏,我会使用 8x8 数组,就像棋盘一样。当然,我的阵列上的编号将是顶部的 0-7 和侧面的 0-7。我的数组中白皇后的位置将是 [3][0]。因此,将数据放在二维数组中就像在棋盘上放置棋子一样。游戏战舰是二维数组的另一个例子。

向数组添加维度就像向图形添加新坐标。您从X开始,然后添加Y,然后他们添加Z。等等等等。

于 2012-11-17T05:22:13.903 回答
0

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

于 2012-11-17T04:31:09.793 回答
0

如果您查看每行数据,则“列”之间有一个共同的分隔符,因此您希望将每行拆分为四个单独的实体。当您逐行工作并获得这四个离散元素时,应该可以将每个元素分配给结构的适当部分。当然,每一行都有一个“结构”,所以最后是一组结构。

于 2012-11-17T04:31:32.950 回答