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
[60538] [답변] TStringList의 CommaText를 이용하세요.
정성훈.해미 [sage5nor] 2473 읽음    2010-03-22 09:57
안녕하세요.
정성훈.해미입니다.

csv파일을 읽어오기에는 TStringList의 CommaText만한 것이 없습니다.
간단하면서 쉽습니다.
그리고 "" 로 묶인 것은 자동으로 ""를 제거합니다.

[사용법]
TStringList* srcFile = new TStringList;
TStringList* srcData = new TStringList;

srcFile->LoadFromFile("불러들일 파일 이름");

for(int i=0; iCount; i++)    {
     //,로 구분된 문자열을 자동으로 분리시켜주는 CommaText
    srcData->CommaText = srcFile->Strings[i];   
    for(int j=0; jCount; j++)    {
        //srcData->String[j]를 원하는 곳에 사용하면 됩니다.
    }
}

delete srcData;
delete srcFile;


CommaText는  , 로 분리시기되 ""로 둘러싸인 값은 둘러싸인 값만 처리합니다.
주의, 공백이 있으면 자동 분리되니 주의하세요.
공백이 들어간 값의 경우 ""로 감싸줘야합니다..이게 단점.

1,0x01,"",Software RESET (0x01)  는
1,0x01,"","Software RESET (0x01)" 이렇게 저장되어 있어야 함.


이성현 님이 쓰신 글 :
: 번호,CMD,DATA,비고
: 1,0x01,"",Software RESET (0x01)
: 2,0x04,0x02,Dot Matrix frame Rate(0x04)
: 3,0x05,0x00,Graphic Memory Writing Direction(0x05)
: 4,0x06,0x00,Row Scan Direction(0x06)
: 5,0x07,0x00,Display Size(0x07)
:
: 위와 같은 csv 파일을 StringGrid1에 뿌려 주는데 ""를 하기 첨부 그림과 같이 출력 됩니다.
: 그래서    1,0x01,"",Software RESET (0x01) 를 -> 1,0x01,,Software RESET (0x01)
: 이런식으로 ""를 없애면 ,,부분은 삭제되고 뒷부분이 앞으로 밀려 오게 됩니다.
:
: ""를 어찌 처리하면 좋을까요?
:
: 엑셀로 불러들이면 없는데 메모장으로 읽으면 ""가 표시 됩니다.
: StringGrid1도 엑셀처럼 표시 안되게 할수 없나요?

+ -

관련 글 리스트
60521 StringGrid1 ""문자처리 문의드립니다. 이성현 1409 2010/03/19
60538     [답변] TStringList의 CommaText를 이용하세요. 정성훈.해미 2473 2010/03/22
60523     Re:StringGrid1 크레브 1300 2010/03/19
60534         Re:Re:StringGrid1 이성현 1300 2010/03/21
60535             Re:Re:Re:StringGrid1 한수동 1479 2010/03/21
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.