全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2227
推到 Plurk!
推到 Facebook!

用COPY擷取中文發生亂碼

答題得分者是:t27
qqking
一般會員


發表:16
回覆:18
積分:6
註冊:2005-05-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-07-27 09:52:40 IP:59.113.xxx.xxx 訂閱
各位大大好~
問題如我標題所提,當我用copy在擷取中文時發生這樣的問題
我擷取的文字為"補發館際借書證手續費"

因為我想要把以上文字當作是我的按鈕caption,但文字太長了
所以我想讓他斷行顯示@@~成補發館際 借書證手續費
我程式如下
SpeedButton2.Caption:=copy(aSL2.Strings[1],1,8) #10#13 copy(aSL2.Strings[1],10,Length(aSL2.Strings[1]))
我想應該是中文換算字元的問題...是嗎?
請問哪位大大能幫幫我...要怎麼做才能達到我的要求
謝謝~

pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-07-27 10:06:14 IP:60.248.xxx.xxx 未訂閱
請參考
http://delphi.ktop.com.tw/board.php?cid=168&fid=914&tid=23509

copy之前先避開中文字
t27
中階會員


發表:34
回覆:95
積分:90
註冊:2002-06-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-07-27 16:54:43 IP:218.166.xxx.xxx 訂閱
僅供參考
function CSubstr(str:string;var start:integer;len:integer):string;
var
i,strlen,x:integer;
tmpstr:string;
s:string;
begin
if Trim(str) <> '' then
begin
strlen:=start len;
tmpstr:='';
i:=start;
while(i begin
if(ord(str[i])>=127)then
begin
s:=copy(str,i,2);
tmpstr:=tmpstr s;
i:=i 2;
end
else
begin
tmpstr:=tmpstr copy(str,i,1);
inc(i);
end;
end;
start := i;
Result:=tmpstr;
end
else
begin
Result := '';
end;
end;
系統時間:2024-04-29 23:05:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!