델초보... wrote:
> 문자열에서 그 길이가 30이 넘으면 ...으로 처리를 하려고 하는데요....
> 이렇게 소스를 짜봤는데 잘 안되는군요
> 한글이 3글자가 나온다음 ...으로 처리가 됩니다...
> 혹시 제가 length를 잘못 쓴 건가요
> length를 integer로 지저했거든요...
> 그게 잘못된건가 싶기두 하구....
> 델초보 무지 고생합니다...
> 고수님들의 답변 애타게 기다릴께요....     
> 
>     long := length(STringGrid3.Cells[1,i]);
>     begin
>          if long >= 30 then
>          begin
>               StringGrid3.Cells[1,i] := copy(StringGrid3.Cells[1,i],1,5) +'...'
>          end else
>          begin
>               StringGrid3.Cells[1,i] := FieldByName(...).AsString;
>          end;
>     end;
> 
안녕하세요~
copy(StringGrid3.Cells[1,i],1,5) 문장은 문자열의 처음부터 5자까지 복사라는 
뜻인데.. 맞는지요? 30자니까 아마도 이렇게 해야될것 같은데요...
copy(StringGrid3.Cells[1,i],1,27) + '...'
그리고 데이터가 한글을 포함하면 한글이 잘릴수 있으므로 다음처럼 해줘야 합니다.
if bytetype(StringGrid3.Cells[1,i],1,27) = mbLeadByte then 
         copy(StringGrid3.Cells[1,i],1,26) + '...'
   else  copy(StringGrid3.Cells[1,i],1,27) + '...' ;
좋은 하루 되세요~