搜尋字串的語法意義 |
尚未結案
|
wena
一般會員 發表:26 回覆:37 積分:12 註冊:2005-07-20 發送簡訊給我 |
在書本上找到一個搜尋的程式
但有幾行不太懂
希望請高手幫我認一下
void __fastcall TForm1::FindDialog1Find(TObject *Sender) { int FoundAt, StartPos, ToEnd; // 如果不是第一次搜尋,將接著下一個搜尋 if (RichEdit1->SelLength) StartPos = RichEdit1->SelStart RichEdit1->SelLength; else // 如果是第一次搜尋,初始化StartPos StartPos = 0; // ToEnd是搜尋字串起始位址到RichEdit最末端位置的剩餘字串長度 ToEnd = RichEdit1->Text.Length() - StartPos; FoundAt = RichEdit1->FindText(ReplaceDialog1->FindText,StartPos, ToEnd, TSearchTypes()<< stMatchCase); if (FoundAt != -1) { RichEdit1->SetFocus(); RichEdit1->SelStart = FoundAt; RichEdit1->SelLength = ReplaceDialog1->FindText.Length(); } }事實上從綠色那一行以下 就不大懂了,所以知如何應用 謝謝 |
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
這個範例就是BCB線上說明的範例~
FoundAt = RichEdit1->FindText(ReplaceDialog1->FindText,StartPos, ToEnd, TSearchTypes()<< stMatchCase); //如果FindText找到指定的字串則傳回其位置,否則傳回 -1 if (FoundAt != -1) { RichEdit1->SetFocus(); //RichEdit元件取得焦點 RichEdit1->SelStart = FoundAt; //把找到的位置值作為RichEidt標示其內容的起點 RichEdit1->SelLength = ReplaceDialog1->FindText.Length(); //從起點開始標示的長度為指定搜尋的字串長度,如此在文章中被找到的字串會被反白 }------------------- 學,然後知不足。 |
wena
一般會員 發表:26 回覆:37 積分:12 註冊:2005-07-20 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
引言: 1. if (RichEdit1->SelLength) 指的是如果不是第一次搜尋,將接著下一個搜尋循上一個敘述: if (FoundAt != -1) //找到字串 { RichEdit1->SetFocus(); RichEdit1->SelStart = FoundAt; RichEdit1->SelLength = ReplaceDialog1->FindText.Length(); //指定標示的長度 }如果找到了,才會指定SelLength的長度,所以當然不是第一次搜尋 引言: 2. FindText(ReplaceDialog1->FindText,StartPos, ToEnd, TSearchTypes()<< stMatchCase);這是一個含式嗎?要怎麼使用?FindText是TReplaceDialog繼承TFindDialog物件而來的成員方法,其中第一個參數表示要搜尋的字串,第二個參數表示要從第幾個位置找起,第三個參數表示要找到那個位置,第四個參數表示要不要考慮大小寫以及是部分搜尋或完整搜尋,請查看TSearchType。 ------------------- 學,然後知不足。 |
wena
一般會員 發表:26 回覆:37 積分:12 註冊:2005-07-20 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
1.TSearchType在BCB的線上說明就有。
2.不用改。看看這句線上說明你就知道怎麼做了。
Read SelText to determine the value of the selected text. Set SelText to replace the selected text with a new string. If there is no selection, but the edit control has focus, set SelText to insert a new string into the text at the cursor.
-------------------
學,然後知不足。 發表人 - stallion 於 2005/07/26 00:09:48
|
wena
一般會員 發表:26 回覆:37 積分:12 註冊:2005-07-20 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |