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

從一行字串中取出所有欄位,但有的欄位有問題請教各位

尚未結案
yuan1688
一般會員


發表:11
回覆:11
積分:4
註冊:2005-01-12

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-08 12:06:19 IP:60.248.xxx.xxx 未訂閱
大家好,我現在想從一行字串中取出欄位值,用的是TStringList , 但現在有一個問題,當某個欄位用字串"括號起來,而且裡頭有空白字元,請教各位先進,有什麼比較有效率的方法嗎 ? ex: S='date=2005-07-08 time=11:25:39 msg="This is a message(aaa)"'; List:=TStringList.Create; List.Delimiter :=#44; 可以取出 List.Values['date'] => 2005-07-08 List.Values['time'] => 11:25:39 但 List.Values['msg'] => This 請各位提點迷津,謝謝 ^^
jeff377
初階會員


發表:9
回覆:60
積分:33
註冊:2004-08-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-08 23:17:06 IP:211.75.xxx.xxx 未訂閱
你不要使用「空字串」做為資料的分隔,使用一些特殊字元做分隔,如#4做分隔,範例如下:    
 
var
  List: TStrings;
  S: String;
begin
  List:= TStringList.Create;
  try
    S='date=2005-07-08' #4 'time=11:25:39' #4 'msg=This is a message(aaa)';
    List.Text:= StringReplace(S,#4,#13#10);
    //List.Values['date']= '2005-07-08';
    //List.Values['time']= '11:25:39';
    //List.Values['msg']= 'This is a message(aaa)';
  finally
    FreeAndNil(List);
  end;
end;
發表人 - jeff377 於 2005/07/08 23:18:12
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-11 08:57:43 IP:218.15.xxx.xxx 未訂閱
yuan1688您好: 试试如下
 procedure TForm1.Button1Click(Sender: TObject);
var
  List:TStringlist;
begin
  List:=TStringlist.Create;
  ExtractStrings([' '],[],'date=2005-07-08 time=11:25:39 msg="This is a message(aaa)"',List);
  showmessage(List.Values['date']);//结果:2005-07-08
  showmessage(List.Values['time']);//结果:11:25:39
showmessage(List.Values['msg']);//结果:"This is a message(aaa)"
  List.Free;
end;
============================ 为什么经过多年以后,得失的过程如此冷漠 ============================
系統時間:2024-04-25 6:37:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!