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 に答える