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

請問不固定長度的字串處理方法??

答題得分者是:jow
wwwbbs
初階會員


發表:41
回覆:59
積分:25
註冊:2003-05-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-01-02 23:29:18 IP:220.229.xxx.xxx 未訂閱
請問各位前輩: 請問不固定長度的字串處理方法?? 字串如下 AAA-BB-CCCC-DD-EEEE-FF AA-BBBB-CCCCC-DDD-EE-FFFF-GGG    我要如何得到每個區段的字串,但不含- 如字串1 AAA BB CCCC DD EEEE FF
hagar
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-01-02 23:57:59 IP:202.39.xxx.xxx 未訂閱
參考: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=24685 其中分隔字元改為 - 試試. -- QBQ: 我能做什麼?
wwwbbs
初階會員


發表:41
回覆:59
積分:25
註冊:2003-05-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-01-03 12:54:38 IP:61.221.xxx.xxx 未訂閱
hagar您好: 謝謝您的相助,可否再請教,若是節區數量不固定的話,那該如何處理呢? 例如 123-456-789//共3個節區 12-34567-890-aaa-bbb//共5個節區
hagar
版主


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

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-01-03 13:00:07 IP:202.39.xxx.xxx 未訂閱
用 TStringList 的話 那以 TStringList.Count 便知道有幾個節區了. -- QBQ: 我能做什麼?
bennykyp
一般會員


發表:11
回覆:31
積分:8
註冊:2004-10-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-01-03 16:56:24 IP:218.208.xxx.xxx 未訂閱
procedure TForm1.Button1Click(Sender: TObject); var sLev1 : String; pLev1 : Integer; begin sLev1 := 'AAA-BB-CCCC-DD-EEEE-FF'; repeat pLev1 := Pos('-',sLev1); sLev1 := Copy(sLev1,(pLev1 1),Length(sLev1)); Showmessage(sLev1); until pLev1 = 0; end;
jow
尊榮會員


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-01-03 17:48:13 IP:203.67.xxx.xxx 未訂閱
這一篇應該能滿足你的需求 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=61140
peterpcc
一般會員


發表:6
回覆:37
積分:13
註冊:2004-09-27

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-01-03 22:46:41 IP:221.239.xxx.xxx 未訂閱
我把自己寫的一段小程式給您參考看看吧.
    //判定有多少個字串
function tTokenNum(vData:string;  vWord:string ):integer;
var
   v_v1:integer;
   v_n:integer;
begin
  vData:=trim(vdata);
  v_v1:=length(vData);
  if rightBstr(vData,length(vWord))=vWord then
    vData:=copy(vData,1,v_v1-length(vWord));   // 遇尾去尾
   v_n:=1;
   while pos(vWord,vData)>0 do
   begin
     vData:=copy(vData,pos(vWord,vData) length(vWord),v_v1-pos(vData,vWord) length(vWord) 1);
     v_n:=v_n 1;
   end;
   result:=v_n;
end;    // 取第幾個字串出來
function tToken(vData:string;  vWord:string; vNum:integer):string;
var
   v_v1:integer;
   v_n:integer;
   v_txt:string;
begin
  vData:=trim(vdata);
  v_v1:=length(vData);
  if rightBstr(vData,length(vWord))<>vWord then   //沒尾補尾
    vData:=vData vWord;
   v_n:=1;
   while v_n     
        
jow
尊榮會員


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

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-01-04 09:53:32 IP:203.67.xxx.xxx 未訂閱
請參考 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=61140">http://delphi.ktop.com.tw/topic.php?TOPIC_ID=61140
 
function Split(s, delimiter: string): TStrings;
begin
  Result := TStringList.Create;
  Result.Text := StringReplace(s,delimiter,#13,[rfReplaceAll, rfIgnoreCase]);
end;    procedure TForm1.Button1Click(Sender: TObject);
var
  S: TStrings;
begin
  S := Split('AA-BBBB-CCCCC-DDD-EE-FFFF-GGG','-');
  try
    if Assigned(S) then ShowMessage(S[4]);
  finally
    FreeAndNil(S);
  end;
end;    
系統時間:2024-06-02 1:47:37
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!