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

Delphi中如何取字符串中指定位置的子串?

尚未結案
ralph921
一般會員


發表:17
回覆:31
積分:14
註冊:2005-08-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-29 09:04:23 IP:210.83.xxx.xxx 未訂閱
Delphi7,小弟想取某字符串中指定位置的子串(如,'01234'中取'4'或取'3') VB中有right$()之類的函數可以做到,但小弟沒有發現Delphi中有類似的功能 請達人解惑!
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-29 09:21:19 IP:218.94.xxx.xxx 未訂閱
var s,ts:string; begin s:='1234567890'; ts:=Copy(s,4,1); ShowMessage(ts) ; end; 如上 风花雪月 e梦情缘 网络代号:wnhoo or sos_admin 网名:e梦缘 Mail:wnhoo@163.com
ralph921
一般會員


發表:17
回覆:31
積分:14
註冊:2005-08-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-29 11:43:46 IP:210.83.xxx.xxx 未訂閱
感謝回復。 但這樣只是對已經確定的字符串的取子串,現在要對不能確定的某個字符串取子串,就無法確定要取的是“4”還是別的什麽了。 唯一能確定的是要取的子串的位置,如“右起第一位”。 不知是否仍有辦法?
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-29 12:27:52 IP:210.65.xxx.xxx 未訂閱
Sorry !! 插一下花!    可以,使用 RightStr Function Returns the substring of a specified length that appears at the end of a string. Unit StrUtils ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-29 13:09:22 IP:218.94.xxx.xxx 未訂閱
var s, ts: string; begin s := '123456789012'; ts := Copy(s, 4, 1); ShowMessage(ts); ts := Copy(s, Length(s), 1);//如“右起第一位”。 ShowMessage(ts); end; 呵呵\这个函数可以很灵活使用 呵呵,也可以用这些函数unit StrUtils; 他们也是用Copy实现的,哈哈 function LeftStr(const AText: AnsiString; const ACount: Integer): AnsiString; overload; begin Result := Copy(WideString(AText), 1, ACount); end; function LeftStr(const AText: WideString; const ACount: Integer): WideString; overload; begin Result := Copy(AText, 1, ACount); end; function RightStr(const AText: AnsiString; const ACount: Integer): AnsiString; overload; begin Result := Copy(WideString(AText), Length(WideString(AText)) 1 - ACount, ACount); end; function RightStr(const AText: WideString; const ACount: Integer): WideString; overload; begin Result := Copy(AText, Length(AText) 1 - ACount, ACount); end; function MidStr(const AText: AnsiString; const AStart, ACount: Integer): AnsiString; overload; begin Result := Copy(WideString(AText), AStart, ACount); end; function MidStr(const AText: WideString; const AStart, ACount: Integer): WideString; overload; begin Result := Copy(AText, AStart, ACount); end; function LeftBStr(const AText: AnsiString; const AByteCount: Integer): AnsiString; begin Result := Copy(AText, 1, AByteCount); end; function RightBStr(const AText: AnsiString; const AByteCount: Integer): AnsiString; begin Result := Copy(AText, Length(AText) 1 - AByteCount, AByteCount); end; function MidBStr(const AText: AnsiString; const AByteStart, AByteCount: Integer): AnsiString; begin Result := Copy(AText, AByteStart, AByteCount); end; 發表人 - sos_admin 於 2005/08/29 13:12:33
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-30 06:10:26 IP:61.64.xxx.xxx 未訂閱
引言: 感謝回復。 但這樣只是對已經確定的字符串的取子串,現在要對不能確定的某個字符串取子串,就無法確定要取的是“4”還是別的什麽了。 唯一能確定的是要取的子串的位置,如“右起第一位”。 不知是否仍有辦法?
對不起,但忍不住要虧妳~「你的腦筋很死,有空練一練吧」
way888
初階會員


發表:32
回覆:76
積分:36
註冊:2005-05-31

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-30 23:27:46 IP:61.216.xxx.xxx 未訂閱
我也來插花一下 sos_admin前輩果真功力深厚,著實另人尊敬與佩服 或許對於一位初學者來說...詳細說明有助理解 . var s1,s2,s3 :string; . s1:=Copy('01234',4,1) s2:=Copy('01234',5,1) s3:=Copy('01234',4,2) . 結果如下 s1...3 s2...4 s3...34 或是 Uses...StrUtils . var s1,s2,s3 :string; . s1:=MidStr('01234',4,1) s2:=MidStr('01234',5,1) s3:=MidStr('01234',4,2) . 結果如下 s1...3 s2...4 s3...34
ralph921
一般會員


發表:17
回覆:31
積分:14
註冊:2005-08-22

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-08-31 08:14:10 IP:210.83.xxx.xxx 未訂閱
也要謝謝Fishman大大和way888大大 可惜沒辦法給三個人分。
系統時間:2024-07-01 8:33:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!