検索を試みましたが、この問題を理解または修正できません。
簡単に言えば。テキスト ファイルを読み取り、CSV として作成する必要があります。次の領域を除いて、物事は順調に進んでいます。
ファイルの最初の列名は、最初の文字が切り捨てられるか削られます: 例: 列名が: Musicianの場合、 usicianのようになり、その列のすべてのデータの最初の文字が切り取られます。
これは、私がこれを行うと起こります:
foreach (string line in s.Replace("\"", "").Split('\n'))
そして、次のようなコードを書くと:
foreach (string line in s.Replace("\r", "").Split('\n'))
次に、列は次のようになります: Musician"、したがって、最初の列のヘッダーを含むすべてのデータは引用符で終わります。
インデックスの位置を変更すると、ファイルの末尾にあるいくつかのデータが削られていることを除いて、すべて問題ありません。
完全なコードは次のとおりです。SSISでファイルを使用できるように、追加のReplaceメソッドを使用して追加のカンマを削除していることに注意してください。これが私がこれを必要とする主な理由です。
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();
}
ご覧いただきありがとうございます。