안녕하세요.
정성훈.해미입니다.
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도 엑셀처럼 표시 안되게 할수 없나요?