我已尝试搜索但无法理解或解决此问题。
长话短说。我需要读取一个文本文件并创建为 CSV。除了以下领域外,一切看起来都不错:
文件中的第一个列名被截断或删除第一个字符:示例:如果列名是:Musician,那么结果是:usician,并截断该列中所有数据的第一个字符。
当我这样做时会发生这种情况:
foreach (string line in s.Replace("\"", "").Split('\n'))
如果我这样写代码:
foreach (string line in s.Replace("\r", "").Split('\n'))
然后该列看起来像这样:Musician",因此包括第一列中的标题在内的所有数据都以引号结尾。
如果我更改索引位置,一切正常,除了文件末尾的几个数据被剃掉。
这是完整的代码:请注意,我正在使用附加的替换方法来删除附加的逗号,以便我可以在 SSIS 中使用该文件。这是我需要这个的主要原因。
static void TxtToCSV(string s, TextWriter writer)
{
foreach (string line in s.Replace("\r", "").Replace(", ", "").Split('\n'))
{
for (int i = 0; i < line.Length; i++)
{
if (i > 0)
writer.Write(line[i]);
}
writer.WriteLine();
}
}
static void Main(string[] args)
{
TextReader reader = new StreamReader(@"C:\folder\sample\test.txt");
string a = reader.ReadToEnd();
reader.Close();
FileStream aFile = new FileStream(@"C:\folder\sample\test.csv", FileMode.Create);
TxtToCSV(a, new StreamWriter(aFile));
aFile.Close();
}
感谢您的关注。