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

一個語言邏輯的問題 小弟不太懂

尚未結案
艾里希思
一般會員


發表:1
回覆:2
積分:0
註冊:2003-05-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-30 08:45:28 IP:218.170.xxx.xxx 未訂閱
procedure TForm1.FindDialog1Find(Sender: TObject); var I, J, PosReturn, SkipChars: Integer; begin with RichEdit1 do For I := LinePos to Lines.Count do begin PosReturn := Pos(FindDialog1.FindText,Lines[I]); if PosReturn <> 0 then {found!} begin Skipchars := 0; for J := 0 to I - 1 do Skipchars := Skipchars Length(Lines[J]); SkipChars := SkipChars (I*2); SkipChars := SkipChars PosReturn - 1; RichEdit1.SetFocus; RichEdit1.SelStart := SkipChars; RichEdit1.SelLength := Length(FindDialog1.FindText); end; end; end; 以上是一個'搜尋文字' 的語法 不過對於她的邏輯我實在是想不通 問題一 LinePos to Lines.Count 這是什麼意思 問題二 J := 0 to I - 1 do Skipchars := Skipchars Length(Lines[J]); SkipChars := SkipChars (I*2); SkipChars := SkipChars PosReturn - 1; RichEdit1.SetFocus; RichEdit1.SelStart := SkipChars; RichEdit1.SelLength := Length(FindDialog1.FindText); 這整個意思 又是什麼 問題三 為什麼 I*2 請各位大大 幫忙一下 小弟剛學不久 謝謝
ccchen
版主


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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-12-01 08:26:58 IP:218.163.xxx.xxx 未訂閱
procedure TForm1.FindDialog1Find(Sender: TObject);
var
  I, J, PosReturn, SkipChars: Integer;
begin
  with RichEdit1 do
  For I := LinePos to Lines.Count do
LinePos應該是程式中宣告的變數, 用來記錄,游標目前所在之行數, 此行之意義應該是由目前行至最後一行
  begin
    PosReturn := Pos(FindDialog1.FindText,Lines[I]);
    if PosReturn <> 0 then {found!}
      begin
        Skipchars := 0;
//以下要計算目前所在位置由最前開始是第幾個字
//首先由第一行起將每一行之字數加起來, 直到找到符合字串之前一行
        for J := 0 to I - 1 do
          Skipchars := Skipchars   Length(Lines[J]);
由於每一個換行均包含 $0d,$0a兩個字元(此兩字元就是Carriage Return及New Line, 因此須加上(i*2), I為行數
        SkipChars := SkipChars   (I*2);
再加上此行中, 符合字串之位置
        SkipChars := SkipChars   PosReturn - 1;
        RichEdit1.SetFocus;
設定被選擇之Text, 使其反白, 開始位置乃前面計算之結果, 長度為搜尋之字串長度
        RichEdit1.SelStart := SkipChars;
        RichEdit1.SelLength := Length(FindDialog1.FindText);
      end;
  end;
end;
艾里希思
一般會員


發表:1
回覆:2
積分:0
註冊:2003-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-12-01 19:01:23 IP:218.170.xxx.xxx 未訂閱
感謝 ccchen 版主 果然是厲害 小弟果然還有待加強 謝謝
系統時間:2024-04-29 12:16:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!