从一个文本文件创建2个数组

本文关键字:文本 文件创建 2个 数组 一个 | 更新日期: 2023-09-27 17:59:30

我有一个巨大的文本文件(33 mb,编码为Unicode,FSO为"TristateTrue"),我想把它放入两个不同的C#数组中。

文本文件中的行格式如下:

 40 TAB 10 TAB 15 TAB 7 TAB 8
 65 TAB 2  TAB 9  TAB 3 TAB 6
 30 TAB 89 TAB 11 TAB 5 TAB 14

第一个C#数组应该读取以下内容:

 int[] outputs=new int[iLineCount+1];    
 outputs[0] = 40;
 outputs[1] = 65;
 outputs[2] = 30;

其他C#数组应该如下所示:

 int[][] inputs = new int[3][];
 inputs[0] = new int[5];
 inputs[1] = new int[5];
 inputs[2] = new int[5];
 inputs[0][0] = 10;
 inputs[0][1] = 15;
 inputs[0][2] = 7;
 inputs[0][3] = 8;
 inputs[1][0] = 2;
 inputs[1][1] = 9;
 inputs[1][2] = 3;
 inputs[1][3] = 6;
 inputs[2][0] = 89;
 inputs[2][1] = 11;
 inputs[2][2] = 5;
 inputs[2][3] = 14;

我觉得这真的很难。如果有人能帮忙,我会非常感激。

非常感谢!

注意:TAB表示制表符字符,行由NewLine字符"分隔"

从一个文本文件创建2个数组

只是为了让你开始:

        using (FileStream fileStream = new FileStream("filename", FileMode.Open, FileAccess.Read, FileShare.Read))
        {
            using (StreamReader streamReader = new StreamReader(fileStream))
            {
                while (streamReader.Peek() > -1)
                {
                    string line = streamReader.ReadLine();
                    string[] parts = line.Split(''t');
                    outputs[lineCounter] = int.Parse(parts[0]);
                    inputs[lineCounter] = new int[4];
                    inputs[lineCounter][0] = int.Parse(parts[1]);
                    inputs[lineCounter][1] = int.Parse(parts[2]);
                    inputs[lineCounter][2] = int.Parse(parts[3]);
                    inputs[lineCounter][3] = int.Parse(parts[4]);
                    lineCounter++;
                }
            }
        }

请记住,此代码不会捕获异常或检查有效数据。我把这件事留给你。

查看方法File.ReadAllLinesString.Split
它们加在一起,应该会给你一个很好的起点。