0

我有一个巨大的文本文件(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 字符“分隔”

4

2 回答 2

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++;
                }
            }
        }

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

于 2013-02-14T07:32:50.490 回答
2

看看方法File.ReadAllLinesString.Split
总之,他们应该给你一个很好的起点。

于 2013-02-14T07:24:28.280 回答