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

INI檔刪除問題

尚未結案
rsiilul
一般會員


發表:1
回覆:1
積分:0
註冊:2005-09-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-11-01 17:35:19 IP:59.113.xxx.xxx 未訂閱
這是INI的內容 [sample] 1=2 asd=qwerq excuse me I am so sorry [excuse] [ok] -------------------------- procedure TForm1.Button1Click(Sender: TObject); Var T:Tinifile; S:String; begin S:='sample'; try T:=Tinifile.create('c:\a.ini'); T.DeleteKey(S,'1'); finally end; end; ------------------ 用上面的程式碼可以將1=2這行刪除 但是卻沒辦法刪除excuse me I am so sorry 因該是deletekey只能刪除有=的行列 但我想作的是清空[sample]裡面所有的文字 不曉得有沒有其他的方法..新手問題 不恥下問..Q.Q
Vicen
高階會員


發表:13
回覆:145
積分:151
註冊:2005-03-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-11-03 09:06:32 IP:221.226.xxx.xxx 未訂閱
换个角度看问题,INI不一定要用Tinifile来处理,简单一点,用TSTRINGLIST来搞定吧~    使用方法: PrcINI(文件路径)    
function PrcINI(sINIPath :String):Boolean;
Var
  slIniFile :TStringList;
  iLine : Integer;
begin
  Result := False;
  if Not FileExists(sINIPath) then Exit;
  slIniFile := TStringList.Create;
  try
    slIniFile.LoadFromFile(sINIPath);
    for iLine := slIniFile.Count-1 downto 0 do
    begin
      Application.ProcessMessages;
      //判断到一对[]就跳过
      if (Pos('[', slIniFile.Strings[iLine])>0)
        And (Pos(']', slIniFile.Strings[iLine])>0) then Continue;
      //判断到=号就跳过
      if Pos('=', slIniFile.Strings[iLine])>0 then Continue;
      //不符合要求的段就DELETE
      slIniFile.Delete(iLine);
    end;
    slIniFile.SaveToFile(sINIPath);
    Result := True;
  finally
    slIniFile.Free;
  end;
end;
祝你好运~ 發表人 -
系統時間:2024-05-17 13:31:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!