【发布时间】:2019-04-22 15:40:35
【问题描述】:
我有一个固定列长度的输入文件,我需要将文件转换为 csv。
当前代码将其转换为 csv,但列会根据不同长度的空白进行偏移。
如何去掉多余的逗号使列数统一?
C#、Visual Studio 和 CSV
using System;
using System.IO;
using System.Linq;
namespace write_csv
{
class Program
{
static void Main(string[] args)
{
string csvfilePath = @"C:\Users\ai_hacker\Desktop\output.csv";
string[] lines = System.IO.File.ReadAllLines(@"C:\Users\ai_hacker\Desktop\orsc1827.ot2");
foreach (string line in lines)
{
var parts = line.Split(' ');
string csvLine = string.Join(',', parts);
Console.WriteLine(csvLine);
File.AppendAllText(csvfilePath, csvLine + Environment.NewLine);
}
}
}
}
输入:
439790 6806991 4700 NORTH AMERICAN 04/18/19 08161895 P90947L6 - O076GG7F
91921221 6835746 1385 GALLAGHER POWER04/18/19 09024922 P90948G0 - O076GHAR
当前输出:
439790,,,,,,,,,,,,,,,,6806991,,,4700,,,,,,,NORTH,AMERICAN,04/18/19,,08161895,,P90947L6,-,O076GG7F
91921221,,,,,,,,,,,,,,6835746,,,1385,,,,,,,GALLAGHER,POWER04/18/19,,09024922,,P90948G0,-,O076GHAR
需要列对齐:
439790,6806991,4700,NORTH,AMERICAN,04/18/19,08161895,P90947L6,-,O076GG7F
91921221,6835746,1385,GALLAGHER,POWER04/18/19,09024922,P90948G0,-,O076GHAR
【问题讨论】:
-
您能否添加输入数据的样本以及您期望的输出?
-
看起来文件已经有逗号,所以它是 csv。这是输入还是输出?列 1 数据、列 2 数据等
-
用
ot2文件中的一些分隔符(在你的情况下为“空白”)分割值,然后用逗号加入 -
不要用答案更新问题。至少在底部多做一个部分。
-
"两者都在控制台中提供了一个输出..." - 不,第一个片段完全不写入控制台。您正在测试/寻找错误的方式。或者运行程序的旧副本。