Q&A

  • 문자열 구분~~~ (15, 16 ---> 15 와 16으로)
1. 문자열 구분
엑셀에서 특정 문자열을 얻어오는데 값이
15, 16 이라고 들어있을때 이것을 각각 15 와 16으로 나누어서 변수에 넣거나 할려면 어떻게 해야 하나요?
즉 ,(쉼표) 가 구분자 역할을 하게 되는건데....
쉽고 좋은 방법이 있을꺼 같은데 헤매고 있네요.

2. 엑셀 데이터 읽기
엑셀로부터 데이터를 읽어서 dbgrid로 표시하는데
아래와 같은 컬럼이 있을경우

번호
12, 15
10
11, 14

2번째 줄의 10 이라는 것은 표시가 안되네요? 무슨 설정같은것을 바꾸어 줘야 하는겁니까?
이상하게 저렇게 되면 안나오네요.
아니면 반대로 아래같이 설정되어 있으면

번호
12
10
11, 14

3번째 줄이 표시안되는 기현상이...ㅡㅡ
참 특이한 현상이 발생하네요.
이것도 혹시 좋은 방법이 있으면 알려주세요.^^;

2  COMMENTS
  • Profile
    이성진 2008.04.13 01:24




    윗분 답변에 추가해서 덧붙입니다.
    여기 딱 맞는 델파이 함수가 있습니다.

    ExtractStrings 입니다.

    function ExtractStrings(Separators: TSysCharSet; WhiteSpace: TSysCharSet; Content: PChar; Strings: TStrings): Integer;


    Separators에다 [','] 를 넣으면 되겠네요


  • Profile
    으흐흐유령 2008.04.11 20:53



    문자열 길이만큼 반복하면서
    copy 함수를 이용해 한자한자 따옵니다.
    ',' 를 만나지 않을때까지 스트링변수(buff)에 누적시키면서
    ','를 만나면 다른변수에 저장을 하던지 출력을 하던지 하면 됩니다. 그리고 buff를 초기화시키고..
    대충 허접하게 짜보자면...
    만약 str에 15,16,17 이 있으면..

    for i:=0 to Length(str) do
    begin
      if copy(str,i,1) then
      begin
        listbox.items.add(buff);   // 출력
        buff := '';
      end;
      else buff := buff + copy(str,i,1);  
    end;


    요래 해놓으면 리스트박스에
    15
    16
    17
    요래 나오겠지요?
    좀더 보기 쉬운 코드가 있다면 부탁드립니다~~
    요즘은 간단하고 최적화된 코드보다 보기쉽고 다른사람이 수정하기 쉬운 코드가 더 대접받는다죠?