【问题标题】:How do I take data from a text file and split it into Arrays?如何从文本文件中获取数据并将其拆分为数组?
【发布时间】:2012-11-17 04:19:21
【问题描述】:

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

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

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”)。

我不是要你们帮我做作业,但我很难掌握数组。你能指出我正确的做法吗?

【问题讨论】:

    标签: c# arrays text struct split


    【解决方案1】:

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

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

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

    向数组添加维度就像向图表添加新坐标一样。您从 X 开始,然后添加 Y,然后他们添加 Z。以此类推。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 2013-07-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-09-09
          相关资源
          最近更新 更多