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

跳出回圈後,如何在跳出點繼續運行?

答題得分者是:sryang
ralph921
一般會員


發表:17
回覆:31
積分:14
註冊:2005-08-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-11 11:35:41 IP:59.44.xxx.xxx 未訂閱
小弟寫了一個比較文本文件内容的程式,其中最重要的部分就是一個用來判斷的while回圈。 原理是這樣的:先分別讀取兩個文本文件到TStringlist,然後按標識拆分爲單獨的字段,以字段為單位進行比較。 如果遇到不同的字段,則繼續拆分,按單字節為單位進行比較,遇到不同的字節則跳出回圈,並執行其他的動作; 現在小弟遇到的問題是,執行了其他動作之後,再調用該回圈,怎樣能讓回圈從上次跳出的字節開始繼續比較?? 望各位大大解惑! 發表人 - Ralph921 於 2005/10/11 11:38:58
sos_admin
版主


發表:121
回覆:697
積分:768
註冊:2003-07-23

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-11 13:59:08 IP:218.94.xxx.xxx 未訂閱
你描述的不太清楚,至于循环跳出就下面几种方式,灵活运用即可实现你需要的功能!
procedure TForm1.Button3Click(Sender: TObject);
var
  a, b, c, i: Integer;
label this;
begin
  i := 0;
  this:
  Inc(i);
  for a := 1 to 10 do
  begin
    for b := 11 to 20 do
    begin
      if b = 12 then continue; //跳过b=12这次循环
      for c := 21 to 30 do
      begin
        if c >= 25 then Break; //结束本次循环
        Memo1.Lines.Add(IntToStr(a)   '-'   IntToStr(b)   '-'   IntToStr(c));
      end;
    end;
    if i = 1 then goto this; //跳转
    if a >= 3 then exit; //退出函数过程
  end;
  ShowMessage('Game Over!');
end;
风花雪月 e梦情缘 网络代号:wnhoo or sos_admin 网名:e梦缘 Mail:wnhoo@163.com
ralph921
一般會員


發表:17
回覆:31
積分:14
註冊:2005-08-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-11 14:24:35 IP:59.44.xxx.xxx 未訂閱
sos_admin大大你好!    我不是想跳出循環(因爲已經實現了,用的是Exit);而是想再度調用循環。    無法說得更清楚了,因爲這個程式本身就怪里怪氣的我再仔細看看吧! 謝謝你!
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-11 22:17:09 IP:222.95.xxx.xxx 未訂閱
只要記住比較到什麼地方就可以了,再次進入迴圈時,從那一點繼續比較 用兩個數值,分別記住目前比較到兩個 TStringList 的哪一個 Item 加油喔,喵~
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
ralph921
一般會員


發表:17
回覆:31
積分:14
註冊:2005-08-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-10-12 07:58:31 IP:59.44.xxx.xxx 未訂閱
sryang大大你好, 你的意思是否是說,我應該多設一個回圈?通過多一個變量給返回的位置定位? 謝謝你! ========== 普通人。
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-10-12 12:14:07 IP:210.243.xxx.xxx 未訂閱
引言:你的意思是否是說,我應該多設一個回圈?通過多一個變量給返回的位置定位?
是的,就是這樣 加油喔,喵~
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
ralph921
一般會員


發表:17
回覆:31
積分:14
註冊:2005-08-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-10-12 12:57:49 IP:59.44.xxx.xxx 未訂閱
sryang大大你好, 設了兩個回圈,問題已經解決。 我想問一下,回圈與回圈變量之間是一一對應的關係嗎?有沒有可能在一個回圈中根據兩個或兩個以上的變量變化判定位置? ========== 普通人。
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-10-12 14:29:05 IP:210.243.xxx.xxx 未訂閱
用幾個迴圈就要看結束條件而定了 以你的例子來說,如果這兩個 TStringList 其中有一個沒有資料了,比較就結束的話,用一個迴圈配合兩個變數,像這樣
index1 := 0;
index2 := 0;
while (index1 < StringList1.Count) and (index2 < StringList2.Count) do
begin
  .....
end;
加油喔,喵~
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
系統時間:2024-06-02 19:37:55
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!