2015-02-03 2 views
0

LLarge CSV 파일을 처리하려고합니다. 가끔은 열 값에 ','가있는 레코드를 얻을 수 있습니다.파일 도우미를 사용하여 레코드 CSV 파서에서 여분의 쉼표를 처리합니다.

"A", "COL1 ','COL2 ','COL3", "col4"

"B", "ROW1", "Row1Col2", "Row1Col3", "Row1Col4"

"C", "행 2", "행 2, Col2의", "행 2, 열 3", "Row2Col4"

처음에 나는 Split(,)을 사용하지만 라인 CI에 대한 때문에에 추가 쉼표의 잘못된 데이터를 얻고있다 열 값

FileHelpers을 사용하기로 결정했으나 올바르게 값을 추출하지 못하는 것 같습니다.

Excel에서 파일을 열면 올바르게 형식이 지정됩니다. 즉, 올바른 값으로 각 값이 표시됩니다.

큰 따옴표 안에 모든 값을 추출하고 싶습니다.

+0

을 (당신이 인용 문자를 전달할 수 및 인용 는 엑셀 CSV 형식과 같은 선택 사항 인 경우 설정할 수 있습니다). 열 구분 기호가 쉼표 ','입니까? 그렇다면 Excel은 쉼표 이외의 세 번째 줄을 어떻게 나눌 수 있습니까? – DrKoch

+0

여분의 쉼표가 보이지 않습니다 ... –

+0

Excel에서 올바른 값을 얻는 방법을 이해하지 못합니다. 세 줄을 가져 와서 test라는 파일을 만들었습니다. .csv 파일을 Excel에서 열었 으면 A와 B 행에 5 개의 열이 있고 C 행에 7 개의 열이 있습니다. 예상되는 것입니다. 소프트웨어가 어떻게 열의 구분 기호인지 또는 데이터의 일부인지 마술 결정할 수 있습니까? –

답변

1

FileHelpers하면이를 사용해야합니다 FieldQuotedAttribute

FieldQuoted는 : 필드가 읽고 인용 문자열과 같이 작성해야 함을 나타냅니다. 이해가되지 않습니다

[FieldQuoted()] // Quoted with " 
public string CustomerName; 
+0

이 버전의 FieldQuoted 특성을 볼 수있다. 내가 가진 것은 [FieldQuotedAttribute()] 공개 문자열 Address4; – sandeeMPS

+0

FileHelpers v 2.0, 오늘 사이트에서 : http://www.filehelpers.com/ – DrKoch

+0

파일 크기가 크기 때문에 비동기식 'FileHelpersAsyncEngine'을 사용해야합니다. 'FileHelpersAsyncEngine'에 대한 [업데이트 된 링크] (http://www.filehelpers.net/example/QuickStart/ReadWriteRecordByRecord/) [여기] (http://filehelpers.sourceforge.net/FileHelpers.FileHelperAsyncEngine.BeginReadFile.html) – shamp00

2

바퀴를 재발 명하지 마십시오.

TextFieldParser을 사용하십시오. 그것은 엑셀처럼 당신의 라인을 분석합니다.

+0

감사합니다. 그러나 빠른 Google 후에 나는 TextFieldParser가 큰 파일을 위해 값이 비싸다는 것을 것을을 발견했다. 그래서 그것을 사용할 수 없습니다. – sandeeMPS

+0

이제 질문을 편집하고 모든 필드를 qutation-marks로 둘러 쌉니다. 'TextFieldParser'는 완벽한 일치입니다 ... – DrKoch

+0

@sandeeMPS, 먼저 시도해 보지 않고 자신의 상황에서 작동하는지보십시오. '빠른 Google'을 사용하면 한 사람의 입증되지 않은 오프라인 의견을 발견했을 수 있습니다. 항상 확인하는 것이 가장 좋습니다. 그것은 아마도 당신이 상황에서 받아 들일 수 있는지 여부를 알아내는 데 2 ​​분이 걸릴 것입니다. –

관련 문제