C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[51950] Re:Re:문자열이 있는 파일에서는 비교가 안되요..-그런데.
wjdrms [] 1261 읽음    2008-01-18 11:47
답변 고맙습니다.
그런데 기본적으로 분석할 모든 데이타에는 문자열이 들어있습니다.
문자열이 있다고해서 에러는 아니구요.

그 문자열을 빼고 나머지 데이타만  검색을 하려고 하는데

검사할때 시작을 숫자가 있는 시점부터 검사를 햇는데 그래도 문제가 발생하네요..^^;;

그 문자열을 제외하고
장성호 님이 쓰신 글 :
: StrToFloat , StrToInt 같은 String 변환함수에는
:
: SysUtils에 3가지 형태가 만들어져 있습니다.
:
: 타입1 . StringToFloat  
: 타입2. StringToFloatDef
: 타입3. TryStrinToFloat
:
: 세가지는 모두 에러처리를 어떻게 하냐에 따라 나누어졌다고 볼수 있는데....
:
: 타입1은  에러가 발생했을때 Exception이 발생합니다.
:
: 타입2는  에러발생했을때 Default값으로 넘겨준 값을 반환해 줍니다.
:    샘플    float f;
:
:             f = StringToFloatDef ( "asfdadsf", 0 );
:             ; 이경우 "asfdadsf" 은 float형으로 변환할수 없기때문에 Default값으로 준 0 값을 반환해주는것입니다.
:
: 타입3 는  기본적으로 return 값이 bool형입니다.
:           성공적으로 변환하면 true를 ,  실패하면 false를 반환하죠
:           성공적으로 변환했을때 값은 call by refrence 로 넘겨주죠
:  
:       샘플
:                  float f ;
:                 if( ! TryToFloat( "asdfafd" , f ))
:                 {
:                      ShowMessage("값이 잘못되었네요...")   ;
:                 }
:               
:
: 그럼....
:
:
: wjdrms 님이 쓰신 글 :
: : 엑셀파일을 열어서 저장된 데이타를 분석해서 깨진데이타가 조건에 맞지 않는 값이 있는지
: :
: : 확인하려고 하는데 엑셀 데이타 안에 숫자만 있으면 잘 동작합니다.
: :
: : 그런데 기본적으로 엑셀파일에 파일에 대한 정보가 저장이 되어있고 그다음에 숫자가 입력되어있기때문에
: :
: : 에러가 나네요..
: :
: : test.xls
: :
: : 파일이름 : 행복
: : 파일 버전 : 행복한 버전
: : 날짜 : 2008년 1월 18일
: :
: : 시간               데이타1            데이타2
: : 14:11:00           1                        2
: : 14:11:00           1                        2
: : 14:11:00           1                        2
: : 14:11:00           1                        2
: : 14:11:00           1                        2
: :
: :
: : 이런식으로 저장이 되어잇습니다.
: :
: :  while(iRow <= data->Count){ //while
: :           iEnd = iRow - 1;
: :                if(iBegin > 0 && iEnd > 0 && iBegin < iEnd){//if3
: :                 asString = asBuffer.SubString(iBegin, iEnd - iBegin + 1);
: :                 // StringList에 넣은 후, comma로 구분한다.
: :                 slTemp = new TStringList;
: :                 slTemp->Clear();
: :                 slTemp->Delimiter = char(9);
: :                 slTemp->DelimitedText = asString;
: :
: :                 if(slTemp->Count == 4){//if4
: :
: :                  try{
: :                  
: :                        data1= StrToFloat(slTemp->Strings[1]);
: :                        data2= StrToFloat(slTemp->Strings[2]);
: :                   }
: :                  catch(Exception& e){//문자에 대한 예외 처리
: :                  }
: :
: :                 }
: :                 delete slTemp;
: :                 slTemp = NULL;
: :                 iRow++;
: :              }
: :       }
: :        iRow++;
: :
: :
: : 이런식으로 처리했는데 검색해보니까 문자에 대한 예외처리를 해야한다고도 하고
: :    // StrToFloatDef(); 이걸 사용하면 된다고도 하는데 정확한 방법을 모르겠네요.
: :
: : 답변 부탁드릴게요

+ -

관련 글 리스트
51940 문자열이 있는 파일에서는 비교가 안되요.. wjdrms 1113 2008/01/18
51943     Re:문자열이 있는 파일에서는 비교가 안되요.. 장성호 1241 2008/01/18
51950         Re:Re:문자열이 있는 파일에서는 비교가 안되요..-그런데. wjdrms 1261 2008/01/18
51955             Re:Re:Re:문자열이 있는 파일에서는 비교가 안되요..-그런데. 장성호 1353 2008/01/18
51961                 Re:Re:Re:Re: 파일명 wjdrms 1143 2008/01/18
51962                     Re:Re:Re:Re:Re: 파일명 장성호 1285 2008/01/18
51963                         Re:Re:Re:Re:Re:Re: ole로 했을때 문제점. wjdrms 1135 2008/01/18
51964                             Re:Re:Re:Re:Re:Re:Re: ole로 했을때 문제점. 장성호 1567 2008/01/18
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.