|
제가 초보라 완벽하지는 않지만 답변을 드리겠습니다
제 생각에는
if(tmpTok=="\"\"") StringGrid1->Cells[i][s] = "";
else StringGrid1->Cells[i][s] = tmpTok;
이런식으로 하시면 될것 같아요
물론 "" 이 부분이 띄어쓰기가 앞뒤로 있을수도 있고 중간에 있을수도 있는 경우도 생각해야 겠지만요
제가 말씀드리고자 하는 것은 if문을 쓰시는 것이 어떤지 말씀드리는 겁니다
다른 방법으로는 strtok(byBuffer,"\",") 이런식으로 " 도 구분자에 포함시키셔서 tmpTok 이 NULL 일경우
빈 내용을 넣으시는 그런 방법도 있는 것 같습니다 물론 여러가지 상황도 고려하셔야 겠지만요;
이상 허접한 답변이었습니다;;
이성현 님이 쓰신 글 :
: 원래는 TXT파일을 1,0x01,,Software RESET (0x01)식으로 만들어서 읽어 드렸습니다.
: 한줄을 읽어 tmpTok = strtok(byBuffer,",");으로 ,를 기준으로 잘라 줍니다.
: 그런데 ,,부분에 아무런 문자가 없으면 뒤에 Sotfware REST(0x01)이 3번째 줄에 나타나야 되는데
: ,,부분이 생략되어 2번째 줄에 써지게 됩니다.
:
: 그래서 예전에 다른분이 했던걸 csv파일을 열어 봤더니 1,0x01,"",Software RESET (0x01)
: 이런식으로 ,, -> ,"",로 처리 되어 있더군요.
: 엑셀로 읽었을시에는 ,"",부분이 아무문자가 없는 것처럼 표시되더군요.
: 메모장으로 읽어 들이면 ,"",이 있습니다.
: 그리고 StringGrid1에 읽어보면 처음질문했던 글에 첨부 그림파일 처럼 표시됩니다.
: ,, -> ,"",를 어떻게 처리해야 될지 난감해서 질문드린 겁니다.
:
:
:
:
:
: 크레브 님이 쓰신 글 :
: : StringGrid1에 잘못 뿌리신 것인데..
: : 어떻게 뿌렸다는건지는 전혀 설명은 안하시니
: : 답변 다시는 분들이 힘들겁니다.
: :
: : 이성현 님이 쓰신 글 :
: : : 번호,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도 엑셀처럼 표시 안되게 할수 없나요?
|