線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1534
推到 Plurk!
推到 Facebook!

delphi 2010 中如何切割固定 byte 數的字串?

答題得分者是:sryang
agerchen
一般會員


發表:8
回覆:6
積分:2
註冊:2006-12-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-05-01 01:55:38 IP:122.117.xxx.xxx 訂閱
我舉個例子 (delphi 2010)…

str1:='123我是中文456';
假設我需要 8個 byte (不是8個 char),我該用什麼函數及型態去做呢?

ps: 我試過 copy / ansileftstr / leftstr 等等的字串處理,好像都不能把中文切開。
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-05-01 23:26:18 IP:124.10.xxx.xxx 訂閱
TEncoding.GetEncoding(950).GetBytes(str1)
就可以得到一個 TBytes (也就是 array of byte),接下來你想要切幾個 bytes 都可以
要轉回字串就是 TEncoding.GetEncoding(950).GetString()
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
hpsonic
一般會員


發表:3
回覆:12
積分:3
註冊:2009-05-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-05-10 10:26:42 IP:60.249.xxx.xxx 訂閱

===================引 用 agerchen 文 章===================
我舉個例子 (delphi 2010)…

str1:='123我是中文456';
假設我需要 8個 byte (不是8個 char),我該用什麼函數及型態去做呢?

ps: 我試過 copy / ansileftstr / leftstr 等等的字串處理,好像都不能把中文切開。

-------------------------------------------------------------------------------------------------------

宣告一個 AnsiString
再將你要處理的字串先丟到這個裡面即可

例:
var s:AnsiString;

S:=Memo1.Text;
Edit1.Text:=Copy( S , 1 , 3 );

試試!
系統時間:2024-07-02 7:54:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!