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

在硬碟中搜尋文字檔內文裡的 AAA 字串直接改為 BBB 字串

答題得分者是:00156
wenberg
一般會員


發表:6
回覆:15
積分:9
註冊:2002-12-26

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-12 13:39:30 IP:61.223.xxx.xxx 未訂閱
請問各位高手,如何在硬碟中搜尋文字檔內文裡的 AAA 字串直接改為 BBB 字串存檔,是否有範例可供參考,謝謝! 發表人 - WENBERG 於 2003/01/12 16:11:58
00156
高階會員


發表:45
回覆:195
積分:112
註冊:2002-06-01

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-12 22:18:59 IP:61.56.xxx.xxx 未訂閱
引言: 請問各位高手,如何在硬碟中搜尋文字檔內文裡的 AAA 字串直接改為 BBB 字串存檔,是否有範例可供參考,謝謝! 發表人 - WENBERG 於 2003/01/12 16:11:58
試試下面的作法,能不能符合您的需要:
  • 搜尋硬碟目錄裡的.TXT檔案(用FindFirst、FindNext、FindClose函數)
  • var sr:TSearchRec;
        f:integer;
    {...}
    f:=FindFirst('C:\*.TXT',faAnyFile,sr);
    while f=0 do
      begin
        {...讀入檔案、代換字串、寫回檔案...}
        f:=FindNext(sr);
      end;
    FindClose(sr);    
  • 將搜尋到的檔案讀入,利用StringReplace函數將'AAA'代換成'BBB',再寫回檔案
  • StringReplace(AString,'AAA','BBB',[rfReplaceAll])
  • 檔案的讀取、寫回可以利用TStringList來完成
發表人 - 00156 於 2003/01/12 22:21:32
wenberg
一般會員


發表:6
回覆:15
積分:9
註冊:2002-12-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-15 14:14:06 IP:61.223.xxx.xxx 未訂閱
試試下面的作法,能不能符合您的需要:
  • 搜尋硬碟目錄裡的.TXT檔案(用FindFirst、FindNext、FindClose函數)
  • var sr:TSearchRec;
        f:integer;
    {...}
    f:=FindFirst('C:\*.TXT',faAnyFile,sr);
    while f=0 do
      begin
        {...讀入檔案、代換字串、寫回檔案...}
        f:=FindNext(sr);
      end;
    FindClose(sr);    
  • 將搜尋到的檔案讀入,利用StringReplace函數將'AAA'代換成'BBB',再寫回檔案
  • StringReplace(AString,'AAA','BBB',[rfReplaceAll])
  • 檔案的讀取、寫回可以利用TStringList來完成
是否能將此演練成範例說明謝謝 [/quote]
00156
高階會員


發表:45
回覆:195
積分:112
註冊:2002-06-01

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-15 21:47:27 IP:61.56.xxx.xxx 未訂閱
procedure TextFilesReplace(BaseDir:TFileName; OldPattern, NewPattern:string);
var sr:TSearchRec;
    find:integer;
    ss:TStrings;
begin
  if BaseDir[Length(BaseDir)]<>'\' then BaseDir:=BaseDir '\';
  ss:=TStringList.Create;
  try
    find:=FindFirst(BaseDir '*.txt',faAnyFile,sr);
    While find=0 do
      begin
        if UpperCase(ExtractFileExt(sr.Name))='.TXT' then
          begin
            ss.LoadFromFile(BaseDir sr.Name);
            ss.Text:=StringReplace(ss.Text,OldPattern,NewPattern,[rfReplaceAll]);
            ShowMessage(ss.Text);
            ss.SaveToFile(BaseDir sr.Name);
          end;
        find:=FindNext(sr);
      end;
    FindClose(sr);
  finally
    ss.Free;
  end;    end;    procedure TForm1.Button1Click(Sender: TObject);
begin
  TextFilesReplace('C:\','AAA','BBB');
end;    
wenberg
一般會員


發表:6
回覆:15
積分:9
註冊:2002-12-26

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-17 15:10:15 IP:61.223.xxx.xxx 未訂閱
謝謝 00156 的幫助問題解決了 再次謝謝你 謝謝
系統時間:2024-11-23 2:47:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!