델초보... 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) + '...' ;
좋은 하루 되세요~