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

有關於TString的問題...

答題得分者是:hagar
darker
一般會員


發表:1
回覆:1
積分:0
註冊:2005-05-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-05-11 09:58:38 IP:220.130.xxx.xxx 未訂閱
各位大大好.. 小弟想請問有關TString的問題,目前需要進行字串的擷取,可是在擷取的過程中,發現假設: var str1,aa:string; str1:='ABCDE'; aa:=copy(str1,1,1); 理論上來說 aa='B'才對吧?? 可是我在偵錯的時候發現, length(str1)=5,但是 copy(str1,1,1)='A' ?? 因為aa[0]=#16,這是為什麼呢?? 是否可為小弟解答...?? 另外,如果我要進行這種字串擷取的動作是否有更好用的函數可供使用呢? 非常謝謝您.
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-05-11 10:13:46 IP:202.39.xxx.xxx 未訂閱
您好, 要取 aa 這個字串的第一個 byte 是用 aa[1] 也就是從 1 開始 不是從 0 開始 -- hagar.
jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-05-11 10:16:19 IP:220.130.xxx.xxx 未訂閱
在delphi中,字串的第一個字元的Index是1
 
S := 'ABCDE';
for I := 1 to Length(S) do
  ListBox1.Items.Add(S[I]);
darker
一般會員


發表:1
回覆:1
積分:0
註冊:2005-05-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-05-11 10:36:58 IP:220.130.xxx.xxx 未訂閱
謝謝兩位大大的教導...^^ 我記得delphi string的 第一個 index 是從0開始, 所以才會犯這種錯...>"<|| 難道是太久沒有用的嗎??
wyndog
資深會員


發表:7
回覆:362
積分:348
註冊:2004-10-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-05-11 10:37:45 IP:60.248.xxx.xxx 未訂閱
引言: 另外,如果我要進行這種字串擷取的動作是否有更好用的函數可供使用呢?
StrUtils 這個 Unit 是有一個 AnsiMidStr 可以用 function AnsiMidStr(const AText: AnsiString; const AStart, ACount: Integer): AnsiString; 用起來是跟 Copy 差不多...
系統時間:2024-11-23 2:01:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!