String.Split
列のを取得するために使用しstring[]
ます。String.Join
すべてのパーツを新しい文字列に結合しFile.WriteAlltext
たりFile.WriteAllLines
、書き戻したりするために使用できます。
それを読んで削除した後、* \field\のように置き換える必要があります。
*
したがって、を次のように置き換える必要があります\
。
string[] parts = line.Split(new[] { '*' }, StringSplitOptions.RemoveEmptyEntries);
string newLine = string.Join("", parts.Select(p => string.Format("\\{0}\\", p.Trim())));
File.WriteAllText(filePath, newLine);
デモ
結果:
\114765\\3\\659300\\01\\17/01/2013\\\\1\\Chuck Norris\\Chuck Norris Jr\\Owner\\1\\28/04/1983\\Conjuge\\\\\\16/1/2013\\1\\Quadro Social\\\
更新:
空の部分(文字列内で2つ連続* *
しているため)を無視する場合は、次のコードを使用できます。
var nonEmptyParts = parts
.Where(p => !string.IsNullOrWhiteSpace(p))
.Select(p => string.Format("\\{0}\\", p.Trim()));
string newLine = string.Join("", nonEmptyParts);
その結果、次のようになります。
\114765\\3\\659300\\01\\17/01/2013\\1\\Chuck Norris\\Chuck Norris Jr\\Owner\\1\\28/04/1983\\Conjuge\\16/1/2013\\1\\Quadro Social\
配列の最初の2つの文字列を無視したいのですが、削除して破棄するだけです。
つまりEnumerable.Skip
:
var nonEmptyParts = parts.Skip(2)
.Where(p => !string.IsNullOrWhiteSpace(p))
.Select(p => string.Format("\\{0}\\", p.Trim()));