Q&A

  • 클립보드에 관하여 질문 있습니다..
지금 엑셀에 있는 내용을 복사 했습니다
----------------------------
|  금수 | 강산 | 123333 |
----------------------------
|  몰라 | 당장 | 123333 |
-----------------------------

sTemp := clipboard.astext ;

이렇게 가져왔습니다.

이걸 스트링그리드에 넣고 싶은데요~  다음 진행을 할수가 없네요~
고수님 꽁수라도 좀 가르쳐주세요~
For nCnt := 0 To Length(sTemp) -1 Do
Begin
   If sTemp[nCnt] = #9 Then
   Begin
       stringGrid1.Cells[nCol,nRow] := sTemp  <-- 이부분을 어떻게 쪼개서 가져가야 할지 ㅠ.ㅠ;
       nCol := ncol + 1;
  End
  Else If sTemp[nCnt] = #13 Then
  Begin
      nRow := nRow + 1;
      nCol := 0;
     StringGrid1.Cells[nCol,nRow] := sTemp   <-<-- 이부분을 어떻게 쪼개서 가져가야 할지 ㅠ.ㅠ;

  End;
End;
6  COMMENTS
  • Profile
    최용일 2010.09.13 23:25
    Copy함수를 쓰시면 문자열에서 원하는 부분을 잘라낼 수 있습니다.
    stringGrid1.Cells[nCol,nRow] := Copy(sTemp, 시작, 끝);
  • Profile
    이승규 2010.09.14 00:15
    답변감사합니다..
    그런데~ 최용일님께서 말씀하시내용은 잴 먼저 써봤습니당 ㅋㅋㅋ 그런뎅
    글자수가 정해 져 있지 않아서~ 시작점을 찾을수가 없습니다.. 끝점하고도
    즉 탭을 분류해서 탭과 탭 사이에 크기를 정해서 잘라야 하는뎅~ 그게 잘 안되더라구요~
  • Profile
    최용일 2010.09.14 00:27
    nStart := 0;
    nEnd := 0;
    For nCnt := 0 To Length(sTemp) -1 Do
    Begin
    If sTemp[nCnt] = #9 Then
    Begin
    nEnd := nCnt;
    stringGrid1.Cells[nCol,nRow] := Copy(sTemp, nStart, nEnd-1);
    nStart := nEnd+1;
    nCol := ncol + 1;
    End
    Else If sTemp[nCnt] = #13 Then
    Begin
    nEnd := nCnt;
    stringGrid1.Cells[nCol,nRow] := Copy(sTemp, nStart, nEnd-1);
    nStart := nEnd+1;
    nRow := nRow + 1;
    nCol := 0;
    End
    End;
  • Profile
    이승규 2010.09.14 02:16
    한번 활용해보겠습니당 감사합니당..
  • Profile
    이승규 2010.09.14 02:56
    ㅎㅎ 이런 저런 꽁수를 써도 잡을수가 없네요~
    휴~~
    엑셀 복사한 가로 세로 갯수랑
    스트링 그리드에 가로 세로 갯수랑 같은뎅
    그넝 쓩 넣을수 없나요 ㅠ.ㅠ;
    이걸 가지고 지금 하루 종일 ㅋㅋ
  • Profile
    소울해커 2010.09.17 22:53
    이러면 될거 같은데 잘못 이해한건가...;

    <!--CodeS-->
    var
    slTemp: TStringList;
    i: Integer;
    begin
    slTemp := TStringList.Create;
    slTemp.Text := sTemp;
    try
    StringGrid1.RowCount := slTemp.Count + 1;
    for i := StringGrid1.FixedRows to StringGrid1.RowCount - 1 do
    StringGrid1.Rows[i].CommaText := slTemp.Strings[i - StringGrid1.FixedRows];
    finally
    if Assigned(slTemp) then FreeAndNil(slTemp);
    end;
    end;
    <!--CodeE-->