2009-08-21 1 views
1

.NET을 사용합니다.Microsoft의 Microsoft Text Driver는 텍스트를 부동 소수점 연산으로 봅니다.

나는 쉼표로 구분 된 데이터가있는 텍스트 파일을 가지고 있습니다. 하나의 열은 다음과 같은 텍스트로 구성됩니다. 1997/020269/07

이제 OdbcCommand로 select를 수행하면 문자열이 float로 간주되어 실제 텍스트 대신 '응답'을 반환합니다.

어떻게하면 실제 텍스트를 얻을 수 있습니까? 파일을 수동으로 구문 분석하도록 강요 당할 건가요?

누군가 도움이 될 수 있기를 바랍니다 ... 제발! :)

편집 : 일부 코드는 아마도? :)

string strConnString = 
      @"Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=" + _FilePath + 
      @"; Extensions=asc,csv,tab,txt;Persist Security Info=False"; 

var conn = new System.Data.Odbc.OdbcConnection(strConnString); 

var cmd = new System.Data.Odbc.OdbcCommand("select MyColumn from TextFile.txt", conn); 
var reader = cmd.ExecuteReader(); 


while (reader.Read()) 
{ Console.WriteLine(reader["MyColumn"]); } 

이 0.014074977 대신 당신이 schema.ini 파일을 사용하여 시도 해 봤나

+1

아무도 당신을 도울 수 없습니다. 당신은 당신이 사용한 코드를 보여주지 않았습니다. 당신은이 "대답"이 무엇인지를 보여주지 못했습니다. 당신은 그 해답을 결코 알지 못할 것입니다. –

+0

당신이 흔들립니다. 나는 지금 당장 내 엉덩이를 웃었다. 내 잘못이야. – Tersius

+0

@ Tersius : 때때로 날카로운 막대기로 찌르는 것이 어깨에 두드리는 것보다 효과적입니다. 나는 날카로운 막대기가 잠시 동안 상처 받기를 바랍니다 - 그리고 당신은 그것을 기억할 것입니다. –

답변

2

1997/020269/07의 반환 -이 명시 적으로 데이터 유형을 포함하여, 텍스트 파일의 형식을 정의 할 수 있습니다.

귀하있는 schema.ini 파일은 같은 조금 찾고 끝낼 수 있습니다 :

 
[sourcefilename.txt] 
ColNameHeader=true 
Format=CSVDelimited 
Col1=MyColumn Text Width 14 
Col2=... 
+0

좋은 링크. 네가 좀 더 정교하게 만들어 주길 바래? –

+0

... 그런 ... –

0

있는 schema.ini

[yourfile.txt] 
ColNameHeader=false 
MaxScanRows=0 
Format=FixedLength 
Col1=MyColumn Text Width 20 

안녕을 사용해보십시오.