如何根据 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());
}