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

write file

答題得分者是:ccchen
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-09-10 11:39:57 IP:61.218.xxx.xxx 未訂閱
請問我想要寫入一行資料到某一個檔案,但是寫之前要判斷此行資料是否存在此檔案中,如果存在就更新那行資料,如果不存在就寫入最後一行,請問要如何做??
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-09-10 12:00:38 IP:61.219.xxx.xxx 未訂閱
寫之前要判斷此行資料是否存在此檔案中,如果存在就更新那行資料 存在之條例為何, 若是完全相同又何必更新? 大致可如此,設str為要加入之字串
var l:TStringlist;
begin
  l:=TStrinlist.create;
  try
    l.loadfromfile(filename);
    n:=l.indexof(str);  // 找尋此字串, 應依你的條例修改 
    if n >= 0 then
      l[n]:=str;
    else 
      l.add(str);
    l.savetofile(filename);
  finally
    l.free;
  end;
end; 
如果你的檔定為 xxx=yyy如ini檔之型式, 可藉由TStringlist之name, value array幫忙, 搜尋時較為方便
cyl
中階會員


發表:163
回覆:171
積分:66
註冊:2002-07-11

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-09-10 12:37:02 IP:61.218.xxx.xxx 未訂閱
引言: 寫之前要判斷此行資料是否存在此檔案中,如果存在就更新那行資料 存在之條例為何, 若是完全相同又何必更新? 大致可如此,設str為要加入之字串
var l:TStringlist;
begin
  l:=TStrinlist.create;
  try
    l.loadfromfile(filename);
    n:=l.indexof(str);  // 找尋此字串, 應依你的條例修改 
    if n >= 0 then
      l[n]:=str;
    else 
      l.add(str);
    l.savetofile(filename);
  finally
    l.free;
  end;
end; 
如果你的檔定為 xxx=yyy如ini檔之型式, 可藉由TStringlist之name, value array幫忙, 搜尋時較為方便
sorry,表達不好,我的file是你說的 xxx=yyy,所以我是想找到xxx修改yyy的值,請問使用TStringlist之name, value array 要如何用
ccchen
版主


發表:61
回覆:940
積分:1394
註冊:2002-04-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-09-10 14:57:33 IP:61.219.xxx.xxx 未訂閱
我的file是你說的 xxx=yyy 那就簡單了
var l:TStringlist;
begin
  l:=TStringlist.create;
  try
    l.loadfromfile(filename);
    l.values[namestr]:=valuestr;
//此行, 自己會去找是否=左邊有 namestr, 有改變其右邊為valuestr, 沒有自動加一行
    l.savetofile(filename);
  finally
    l.free;
  end;
end;
發表人 - ccchen 於 2002/09/10 14:58:09
系統時間:2024-04-28 2:30:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!