Q&A

  • Re: 소스 좀 봐주세요....
델초보... 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) + '...' ;



좋은 하루 되세요~



0  COMMENTS