0
CSV 파일을 읽고 정렬하고 있습니다. 어떤 도움을 이해할 수있을 것이다파일의 열을 기준으로 DataTable 정렬
DataTable dt = new DataTable();
dt.Columns.Add("accountholder", typeof(string));
dt.Columns.Add("accountnumber", typeof(int));
dt.Columns.Add("accounttype", typeof(string));
dt.Columns.Add("bankname", typeof(string));
dt.Columns.Add("branch", typeof(string));
dt.Columns.Add("amount", typeof(double));
dt.Columns.Add("date", typeof(DateTime));
string line;
//CultureInfo culture = CultureInfo.InvariantCulture;
StreamReader sr = new StreamReader(@"C:\\Test\\debitorders.csv");
StreamWriter sw = new StreamWriter(@"C:\\Test\\output.txt");
while ((line = sr.ReadLine()) != null)
{
if (line.Length > 0)
{
string[] inputArray = line.Split(new char[] { ',' });
dt.Rows.Add(new object[] {
inputArray[0].Trim().Substring(0,1),
inputArray[1].Trim(),
long.Parse(inputArray[2].Trim()),
inputArray[3].Trim(),
inputArray[4].Trim(),
inputArray[5].Trim(),
(long)(100 * double.Parse(inputArray[6].Trim())),
DateTime.Parse(inputArray[7].Trim())
});
DateTime date = account.Field<DateTime>("date");
string[] outputLine = new string[]{
initial,
accountholder,
accountnumber.ToString(),
accounttype,
bankname,
branch,
amount.ToString(),
date.ToShortDateString()
};
Console.WriteLine(string.Join(",",outputLine));
}
}
Console.ReadLine();
:
내가 여기 데이터 테이블에서 나에게 BANKNAME에 따라 출력을 제공하는 DataTable을 정렬 시도하고 내가 이미 가지고있는 코드입니다.
당신에게
[FileHelpers] (http://filehelpers.sourceforge.net/)를 사용하면 훨씬 쉽고 멋지게 처리 할 수 있습니다. 또한 StreamReader 및 StreamWriter를 닫지 않는 것 같습니다. 당신은 [사용하는 문장으로 그들을 캡슐화하는 것이 가장 좋을 것이다] (http://www.hanselman.com/blog/WhyTheUsingStatementIsBetterThanASharpStickInTheEyeAndASqlConnectionRefactoringExample.aspx). – BCdotWEB
또한 StreamWriter를 사용하지 않고 콘솔로 출력합니다. 'Field ("성")은 어디에서 왔습니까? 귀하의 코드를 재구성하고 작은 비트로 분할하는 것이 좋습니다. 원시 데이터를 읽고, 원시 데이터를 올바른 형식의 데이터로 변환하고, 출력을 작성하는 것이 좋습니다. IMHO이 코드를 사용하면 많은 사람들이 기대할 수있는 문제가 너무 많습니다. 도와주세요. –
BCdotWEB
("성")과 ("초기")는 "계좌 소유자"를 구성합니다. 코드가 아직 끝나지 않았으므로 여전히 멈추었습니다. 난 그냥 더 쉬운 방법을 원해. – Brian02