내 고객 지정 소프트웨어에서 파일을 가져 오려고합니다. 이 파일은 기본적으로 사용자 정의 이스케이프 문자가 포함 된 csv 파일입니다. 나는 파일을 한 줄씩 읽은 다음 각 줄을 문자열 []로 나눕니다. 그런 다음 각 각 요소를 내 사용자 지정 개체의 필드에 할당합니다. 예를 들면 :C#을 사용하여 알 수없는 크기의 CSV를 사용자 지정 개체로 변환
Person.Name = line[0];
Person.Age = line[1];
Person.Height = line[2];
등 문제가, 내가 수입하고있는 파일 중 일부는 응용 프로그램의 이전 버전에서하고 모든 필드를 포함하지 않는다. 그래서이 줄 line.Length = 2 대신 3
의이 문제를 해결하는 "깨끗한"방법이 있나요 때문에
Person.Height = line[2];
오류를 알아? 나는 각 과제 앞에 if 문을 써서 주위를 둘러 보았고 [x] 행이 유효한지 확인했다. 그러나 그것은 나에게 kludgy처럼 보인다.
일반적으로 6 개의 항목이 있다고하면 3 또는 5 중 누락 된 항목을 알 수있는 방법이 있습니까? 어떤 열이 누락되어 있는지 날짜 또는 무언가를 기준으로 말할 수있는 방법이 있습니까? – bytebender
그래, 내 솔루션은 누락 된 열을 항상 줄 끝 부분에 의존합니다. 연속적인 버전이 단순히 더 많은 열을 추가하는 경우 합리적인 가정이라고 생각합니다. –
이전/새 CSV에 헤더가 있습니까? –