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

如何比較數字

答題得分者是:ccchen
delphi
初階會員


發表:52
回覆:64
積分:38
註冊:2002-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-06 09:56:12 IP:61.63.xxx.xxx 未訂閱
各位先進: 我有2個檔案,當程式執行時會把2個檔案的值讀出來並且做比較, 如果有一樣ㄉ就不顯示,有不一樣ㄉ值才會顯示並寫入第2個檔請教要如何寫!! 例如: 第一個檔 第二個檔 1 1 2 2 3 3 4 將會顯示有一個檔案並將4寫入第2個檔 謝謝 逃避不一定躲得過 面對不一定最難受 孤單不一定不快樂 得到不一定能長久 失去不一定不再有 轉身不一定最軟弱 別急著說別無選擇 別以為世上只有對與錯 許多事情的答案都不是只有一個 所以我們永遠有路可以走 你能找個理由難過 也一定能找到快樂 懂得放心的人找到輕鬆 懂得遺忘的人找到自由 懂得關懷的人找到朋友
hagar
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-06 10:55:02 IP:202.39.xxx.xxx 未訂閱
1.不知是不是這樣?
var sl1, sl2: TStringList;
  i: integer;
begin
  sl1 := TStringList.Create;
  sl2 := TStringList.Create;
  try
    if sl1.Count <= sl2.Count then begin
      for i := 0 to sl1.Count-1 do begin
        if sl1.Strings[i] <> sl2.Strings[i] then
          Memo1.Lines.Add('第 '   IntToStr(i 1)   ' 行: '   sl1.Strings[i]   ' === '   sl2.Strings[i]);
      end;
      for i := sl1.Count to sl2.Count-1 do 
        Memo1.Lines.Add('第 '   IntToStr(i 1)   ' 行: === '   sl2.Strings[i]);
    end else begin
      for i := 0 to sl2.Count-1 do begin
        if sl1.Strings[i] <> sl2.Strings[i] then
          Memo1.Lines.Add('第 '   IntToStr(i 1)   ' 行: '   sl1.Strings[i]   ' === '   sl2.Strings[i]);
      end;
      for i := sl2.Count to sl1.Count-1 do 
        Memo1.Lines.Add('第 '   IntToStr(i 1)   ' 行: '   sl1.Strings[i]   ' ===');
    end;
  finally
    sl1.Free;
    sl2.Free;
  end;
end;
2.您是要將不一樣部份寫入第二個檔案嗎? --- Have you ever wondered what it would be like?
pprayer
高階會員


發表:35
回覆:185
積分:174
註冊:2002-03-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-06 11:44:21 IP:211.21.xxx.xxx 未訂閱
你好,我想sametext, StringReplace這兩個函式應該可以幫助你
T.J.B
版主


發表:29
回覆:532
積分:497
註冊:2002-08-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-06 11:52:11 IP:61.220.xxx.xxx 未訂閱
可以用 CompareText(str1,str2) 做比較 天行健 君子當自強不息~~@.@
------
天行健
君子當自強不息~~@.@
delphi
初階會員


發表:52
回覆:64
積分:38
註冊:2002-05-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-06 13:29:27 IP:61.63.xxx.xxx 未訂閱
2.您是要將不一樣部份寫入第二個檔案嗎? 對我要將不一樣ㄉ寫入沒有ㄉ檔案 逃避不一定躲得過 面對不一定最難受 孤單不一定不快樂 得到不一定能長久 失去不一定不再有 轉身不一定最軟弱 別急著說別無選擇 別以為世上只有對與錯 許多事情的答案都不是只有一個 所以我們永遠有路可以走 你能找個理由難過 也一定能找到快樂 懂得放心的人找到輕鬆 懂得遺忘的人找到自由 懂得關懷的人找到朋友
hagar
版主


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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-06 14:20:14 IP:202.39.xxx.xxx 未訂閱
引言: 2.您是要將不一樣部份寫入第二個檔案嗎? 對我要將不一樣ㄉ寫入沒有ㄉ檔案
要把第 2 個檔案中原本的內容覆蓋掉? --- Have you ever wondered what it would be like?
delphi
初階會員


發表:52
回覆:64
積分:38
註冊:2002-05-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-06 14:45:25 IP:61.63.xxx.xxx 未訂閱
引言: -------------------------------------------------------------------------------- 要把第 2 個檔案中原本的內容覆蓋掉? -------------------------------------------------------------------------------- 我ㄉ程式 if FileExists(ExtractFilePath(paramstr(0)) 'log.txt') then begin backstr.Clear; assignfile(f, ExtractFilePath(paramstr(0)) 'log.txt'); reset(f); readln(f, tempstr); while Trim(tempstr) <> '' do begin if Trim(tempstr) <> '' then backstr.Add(Trim(tempstr)); readln(f, tempstr); end; closefile(f); end else begin assignfile(f, ExtractFilePath(paramstr(0)) 'log.txt'); Rewrite(f); for i := 0 to allbackstr.Count - 1 do begin Writeln(f, allbackstr.Strings[i]); end; closefile(f); end; 我是想要allbackstr跟做backstr比對,如果allbackstr有新增加值就把新增加的值寫到backstr但原有ㄉ值要保留因為當我程式結束在開起時allbackstr跟做backstr比對只要有重覆ㄉ質就不顯示,有新值才顯示並在寫入backstr請教要怎麼去做2者之間ㄉ比對並把新值寫入 逃避不一定躲得過 面對不一定最難受 孤單不一定不快樂 得到不一定能長久 失去不一定不再有 轉身不一定最軟弱 別急著說別無選擇 別以為世上只有對與錯 許多事情的答案都不是只有一個 所以我們永遠有路可以走 你能找個理由難過 也一定能找到快樂 懂得放心的人找到輕鬆 懂得遺忘的人找到自由 懂得關懷的人找到朋友
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-03-06 23:31:42 IP:61.70.xxx.xxx 未訂閱
恩 如果你能先將你的需求在心中整理好再來問那會省很多時間 所以你的目的是這樣嗎 ? 1. 有兩個已經存在的檔案且各有其內容 allbackstr 跟 backstr 2. 將 allbackstr 有而 backstr 沒有的值,由 allbackstr 複製到 backstr 內 恩 而你所寫的程式,好像不是這樣ㄝ ! 所以我弄不懂你要什麼 ! 不過建議你可以思考一下 1. 你的目的在哪裡 2. 有哪些作法 3. 有哪些元件可以來實現 建議你可以 1.用兩個 TMemo 來實做,這樣可以很方便的處理文字檔,不是由元件盤上拉喔 ! 而是要自己宣告產生,這樣就不必一定要有視覺化介面,TMemo 有方便的檔案讀取與寫回之功能 2.你的檔案是要做什麼用?一個規劃良好的檔案會比一個散亂無規劃的檔案來的好處理,所以依你的目的來規劃檔案,在善用 TMemo 所提供的各項能力,相信一定可以解決你的問題 不過最重要的事,先弄清楚自己的目的,沒有比弄清楚目的,然後以一個有條理、有規則的敘述來整理這要的前置作業更重要的了,一旦這裡的Algorithm 確立了,那程式就好辦了 !
ccchen
版主


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

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-03-07 08:06:43 IP:61.219.xxx.xxx 未訂閱
如果是純text檔用StringList就容易的多
var l1,l2:TSringlist;
  i:integer;
begin
  l1:=TStringlist.create;  //create兩個Stringlist
  l2:=TStringlist.create;
  try
    l1.loadfromfile(filename1);  //載入file1
    l2.loadFromFile(FileName2);  //載入file1
    for i:=0 to l1.count -1 do begin  //對file1中之每一行
      if Trim(l1[i]) <> '' then   
        if l2.indexof(l1[i]) < 0 then  //l2中無此字串
          l2.add(l1[i]);           //在l2中加入此字串
    end;
    l2.savetofile(filename2); //重存l2
  finally
    l2.free;
    l1.free;
  end;
end; 
系統時間:2024-05-03 13:04:12
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!