2016-06-01 3 views
0

텍스트 파일의 구분 기호를 확인하려면 어떻게해야 : 1. 쉼표로 구분 (예 : 성, 이름, 주소) 2. 공간으로 구분 된 (즉,이 lastName firstName을 주소)내가 입력 파일의 2 개 종류가

을 쉼표로 구분 된 파일은 ','및 다음 단어 사이의 공백을 포함합니다.

내가 처리 할 파일을 결정하는 방법은 무엇입니까? C# btw를 사용하고 있습니다.

+2

이름과 주소에 쉼표가없는 것으로 가정하지 않는 한 확실한 방법은 없습니다. –

+0

결정 요인으로 파일 확장자 또는 파일의 출처를 사용할 수 있습니까? – adam0101

+0

또는 사용자에게 그들이 사용하고있는 파일을 묻는 메시지를 표시 할 수 있습니까? – adam0101

답변

1

다양한 구분 된 파일 형식을 사용하여 많은 작업을 해왔으며 다른 모든 사람들이 말하는 것처럼 표준화를하지 않으면 프로그래밍 방식으로 모든 것을 처리 할 수 ​​없습니다.

일반적으로 (그리고 그것은 space-delim에 필수적으로 필요한 것처럼 보입니다) 구분 된 파일은 텍스트 한정자 문자 (대개 큰 따옴표)를 갖습니다. 이 점의 몇 가지 예 :

공간 구분 :

이 lastName "폰 마샬은"예선없이 불가능하다.

주소도 모두 불가능합니다.

쉼표로 구분 : 그들은 별도의 필드로 분리 또는 고체 문자열을 가진 것은 귀하의 사용 사례에 대한 허용하지 않는

주소는 일반적으로 쓸모 있습니다.

그래서 공간 구분은 " "을 찾고 있으므로 쉽게 결정할 수 있어야합니다. 이 경우 (개인적으로) " "","으로 바꿔 쉼표로 변경하십시오. 그렇게하면 텍스트를 처리하는 단일 메서드 만 만들어야합니다. 그렇지 않으면 공백과 쉼표를 별도로 메서드가 필요하다고 상상해보십시오.

쉼표 - 구분 기호 파일에 텍스트 한정자가 없으면 매우 까다로운 위치에 있습니다. 나는 인간의 일없이이 문제를 해결할 수있는 "완벽한"방법을 찾지 못했지만 그것을 최소화 할 수 있습니다. 나는 Notepad ++를 사용하여 정규 표현식 함수로 일괄 치환을했다.

그러나 C#의 정규 표현식 기능을 사용할 수도 있습니다. Here's what MSDN says on that. 두 가지 파일 유형간에 고유성을 설정할 수 없다면 최선을 다해 질문에 대답하십시오. 그러나 텍스트에 적절한 텍스트 한정자가있는 경우 파일의 파일 확장자가 다르거 나 다른 디렉토리에서 생성 된 경우 - 파일의 유형을 결정할 때 해당 특성이나 혼합을 사용할 수 있습니다. 나는 아직 경험이 없지만 (단지 프로젝트를 사용하기 시작 했음에도) 정확한 예제를 제시 할 수는 없지만, 완벽한 예제를 작성하는 사람이라면 누구 에게라도 보여 주면 가장 좋을 것이라고 말할 수 있습니다. 각 파일의 예제 문자열.

0

다른 사용자가 공백으로 구분 된 버전에 쉼표가없는 것으로 보증 해 주므로 100 % 정확도를 보장 할 수 없습니다.

일부 정보로는 정확하게 구문 분석 할 때 항상 모든 레코드에 대해 세 개의 필드가 있으며 올바른 필드 수에 대한 결과를 테스트 할 수 있다고 말하십시오. 주소는 우리가 그 형식이 무엇인지 모르기 때문에 큰 블록입니다. 또한 주소에 대해 이야기 할 때이 규칙은 기껏해야 이상합니다.

1111somestreest.houston,tx11111 or 
1111 somestreet st. Houston, Tx 11111 

올바른 형식입니까?

0

파일의 쉼표 수를 계산할 수 있습니다. 한 줄에 2 개 이상의 쉼표가있는 경우 (정보가 성, 이름, 주소 인 경우) 쉼표가 구분되어있을 수 있습니다. 최소 한 줄에 쉼표가 2 개 미만인 경우 공백으로 구분해야합니다.

그러나이 단계를 건너 뛰고 입력을 모두 공백으로 바꾸어 입력을 평가할 때는 쉼표를 무시하고 공백으로 구분 된 파일 만 고려하여 단일 읽기/그랩 정보 절차를 구현합니다.