2013-04-24 3 views
-6
내가

C# CSV 파일 /리스트

내가이 질문은 요청을받은하고 내가 그들을 통해 갈 것을 알고 C#에서 일부 배열에 4-5 CSV 파일을 읽을 수

... 하지만 내 사용 CSV를가 너무 훨씬 간단합니다 ...

내가

string , string

이러한 문자열은하지 않고 있습니다 .... 다음과 같은 데이터 유형의 열 CSV fiels이 ','그래서 아무 긴장 ... 그게 전부입니다. 그리고 그들은별로 크지 않습니다. 각각에 약 20 개의 레코드 만 있습니다. 은 C#을 ...

의 배열에 읽어에

난 그냥 그렇게 어떤 아주 아주 간단하고 직접 방법이 있나요 원하는 ?

+0

** 관련 ** 질문보기 -> –

+0

'C#의 배열'이란 무엇입니까? –

+0

@GrantThomas : 안경을 싫어하는 사람? (나이가 들거나 시력이 약한 황폐화에 대한 새로운 Clint Eastwood 영화 일 수 있음) –

답변

2

파일을 읽을 수는 줄을 읽으려면

TextReader reader = File.OpenText(filename); 

를 사용
string line = reader.ReadLine() 

다음

string[] tokens = line.Split(','); 

그들을 분리 할 수 ​​있습니다.

마지막 예제 라인 둘레에 루프를 사용하면 원하는 경우 토큰의 각 배열을 목록에 추가 할 수 있습니다.

+0

열 항목에 문자열 값에 쉼표가 있으면 어떻게됩니까? –

+0

CSV 파일을 쉼표로 구분하면 토큰 내의 쉼표가 잘못되었거나 올바르게 구문 분석 할 수 없습니다. 구분 문자는 분명히 토큰에 사용되지 않는 문자 여야합니다. 시작한 항목이 셀에서 쉼표를 사용하는 경우 쉼표로 구분 된 목록으로 내보낼 수 없다고 가정합니다. – SamiHuutoniemi

+0

그건 완전히 거짓이며, 프로그래머로서 나는 도망 치는 가치의 _ 무언가를 알기를 기대합니다. –

2

여기에는 필드에 쉼표가 & 개 있습니다. (한 번에 한 줄씩 작업한다고 가정)

using Microsoft.VisualBasic.FileIO; //For TextFieldParser 

// blah blah blah 

StringReader csv_reader = new StringReader(csv_line); 

TextFieldParser csv_parser = new TextFieldParser(csv_reader); 
csv_parser.SetDelimiters(","); 
csv_parser.HasFieldsEnclosedInQuotes = true; 
string[] csv_array = csv_parser.ReadFields(); 
1

다음은 문자열 배열에 대한 CSV 콘텐츠를 가져 오는 간단한 방법입니다. CSV 파일은 큰 따옴표, 캐리지 리턴 라인 피드를 가질 수 있으며 구분 기호는 쉼표입니다. 다음은 당신이 필요로하는 라이브러리입니다 : System.Collection.Generic;

System.IO

System.IO;이 파일을 액세스 할 수 FileStreamStreamReader 클래스입니다. 두 클래스 모두 IDisposable 인터페이스를 구현하므로 using 문을 사용하여 스트림을 닫을 수 있습니다. (아래 예)

System.Collection.Generic 네임 스페이스 목록 내 솔직한 의견에 배열보다 더 때문에 등등 IList, ListArrayList로 ...이 예제에서, 우리는 List 클래스를 사용합니다, 컬렉션입니다. 그러나 아웃 바운드 변수를 반환하기 전에 배열을 반환하는 .ToArray() 멤버 메서드를 호출합니다.

파일에서 내용을 가져 오는 데는 여러 가지 방법이 있습니다. 개인적으로 while(condition) 루프를 사용하여 내용을 반복하는 것을 선호합니다. condition 절에 !lReader.EndOfStream을 사용하십시오.이 아닌 스트림의 끝 부분을 계속 반복하면서 파일을 반복합니다.

희망이 있습니다. 매우 쉽고 빠릅니다. 건배!