나는이 여기에 ... 당신이 찾고있는 C#에서 중복 헤더를 제거하는 한 방법입니다 확실하지 않다. 이 코드의 주요 목적은 하나의 헤더를 저장하고 string header
이며 첫 번째 행 (while (rdr.Peek() != -1)
)을 건너 뜀으로써 파일을 읽는 것입니다.
또한 각 csv 파일의 행을 저장하기 위해 사전을 사용했습니다. 이렇게하면 여러 csv 파일의 중복 행이 포함되지 않습니다 (이 함수가 도움이되는지 확실하지 않습니다).
fname
은 병합 할 파일이 들어있는 문자열 배열입니다.
Dictionary<string, string> dict = new Dictionary<string, string>();
string destinationFile = <write path of your destination file>;
string dir = <write path of your original directory>
string header = "";
if (dir.Length != 0)
{
foreach (string f in fnames)
{
using (StreamReader rdr = new StreamReader(dir + "\\" + f))
{
header = rdr.ReadLine();
while (rdr.Peek() != -1)
{
string ln = rdr.ReadLine();
string[] split_ln = ln.Split(',');
string value = (split_ln.Length != 2) ? string.Join(",", split_ln.Skip(1)) : split_ln[1];
dict.Add(split_ln[0], value);
}
}
}
using (StreamWriter wr = new StreamWriter(destinationFile))
{
wr.WriteLine(header);
foreach (var pair in dict)
{
wr.WriteLine("{0},{1}", Convert.ToString(pair.Key), pair.Value);
}
}
}
당신이 C#에서 이렇게시겠습니까를 두 번? – Mayou
전혀 C#을 사용하지 않아서 일부만 좋았습니다.이 서비스는 오히려 도움이되지 않는 * 에헴 * 통신 공급자에 대한 통계를 수집하고 있기 때문에 멋지고 신속합니다. – Ahhhhbisto
여기에 첫 번째 시도가 있습니다. – Mayou