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
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
列が空白文字で区切られていると仮定すると、このコードは機能するはずです。
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());
}