0

如何根据 C# 中原始文件中的列数读取文件并生成文件

原始文件:

文本 1 文本 2

科尔

col1 col2
1     11
2     22
3     33
4     44

输出文件:file1

文本 1 文本 2

科尔

col1 
1     
2    
3     
4  

文件2:

文本 1 文本 2

科尔

 col2
 11
 22
 33
 44
4

1 回答 1

0

假设列由空格字符分隔,此代码应该可以工作:

        string filePath = @"C:\input.txt";
        string outputDirectory = @"C:\";
        string[] allLines = File.ReadAllLines(filePath);

        // Replace multiple spaces with a single space character.
        for (int i = 0; i < allLines.Length; i++ )
        {
            allLines[i] = Regex.Replace(allLines[i], @"\s+", " ");
        }

        // Check how many columns there are.
        int columns = 0;
        if (allLines.Length > 0)
            columns = allLines[0].Split().Length;

        var linesValues = allLines.Select(l => l.Split());

        // Write each column to a separate file "output1.txt" ... "outputN.txt".
        for (int i = 0; i < columns; i++)
        {
            StringBuilder newTable = new StringBuilder();
            foreach (string[] values in linesValues)
            {
                newTable.Append(values[i] + Environment.NewLine);
            }
            File.WriteAllText(outputDirectory + "output" + i + ".txt", newTable.ToString());
        }
于 2013-02-23T13:24:40.017 回答