Scintilla使用指南(2) - 全文檢索與修改
在Scintilla中,每個字元後面,都跟有一個表示字元樣式的位元組,字元位元組和樣式位元組一起組成一個字元單元。樣式位元組的8個bit,分為兩個部分:字元樣式和字元指示器。透過SCI_INDICATORFILLRANGE訊息可以設定一段文字的字元指示器。預設低5位元為字元樣式,高3位元為字元指示器。因此,可以有32種字元樣式。 3個互相獨立的字元指示器,可以用來指示語法錯誤、不贊成的名字和壞的縮排等資訊。可以使用SCI_SETSTYLEBITS訊息設定字元樣式位最大到7個bit位,剩下的將被指派給字元指示器。
Position指示了Scintilla中的字元或字元前空白點的位置。第一個字元的position是0,第二個是1,依此類推。假如文檔包含了nLen個字符,則最後一個字符的position是nLen – 1。遊標存在於兩個字元之間,能夠被定位到第一個字元之前(0)和最後一個字元之後(nLen)。
當兩個字元被當作一個字元處理時,遊標是無法存在於兩個字元之間的。這種情況,通常發生在中文等多位元組字元或行結束符為CRLF時。常數INVALID_POSITION(-1)表示一個非法位置。
出於效能考慮,所有文字行具有相同的高度:目前樣式中最大字體的高度。
SCI_GETTEXT, SCI_SETTEXT
1) SCI_GETTEXT(int length, char *text)
取得文字:
(1) 當text為0時,傳回整個文件長度len + 1;
(2) 當length為0時,傳回0;
(3) 當text不為0且length大於0時,返回length – 1,text被填充為從位置0開始的length – 1個字元和一個0終結符。如果length大於文件長度,多出的位置將被填入空字元0。
unsigned int len = SendMessage(SCI_GETTEXT, 0, 0); char *chText = new char[len]; SendMessage(SCI_GETTEXT, len, (LPARAM)chText); … delete [] chText;
2) SCI_SETTEXT(
設定文檔文字為text,text是以0結尾的常數字串。如果text為0,回傳FALSE(0),否則回傳TRUE(1)。
SCI_SETSAVEPOINT SCI_SETSAVEPOINT
設定保存點,文件狀態將變成unmodified,回傳TRUE(1)。 SCI_SETSAVEPOINT訊息將會觸發SCN_SAVEPOINTREACHED事件通知。當文件狀態變成modified時,將會觸發SCN_SAVEPOINTLEFT事件通知。
SCI_GETLINE
SCI_GETLINE(int line, char *text)
取得指定行文本,傳回指定行文本長度(包含行結束符)。行號line從0開始,如果行號大於最大行號,將回傳0。當text為0時,直接返回指定行文本長度;當text不為0時,text將被填入指定行文本,但並不會自動設定結束符0。
unsigned int len = SendMessage(SCI_GETLINE, 1, 0); char *chText = new char[len + 1]; memset(chText, 0, len + 1);SendMessage(SCI_GETLINE, 1, (LPARAM)chText); …delete [] chText;
SCI_REPLACESEL
SCI_REPLACESEL(
替換選擇文本,text是以0結尾的常數字串。當沒有文字被選擇時,將在目前位置插入文字。替換後,遊標將處於插入文字之後,並自動捲動視圖,以使文字可見。當text為0時,傳回FALSE(0),否則回傳TRUE(1)。
SCI_SETREADONLY, SCI_GETREADONLY
1) SCI_SETREADONLY(bool readOnly)
設定文件為唯讀,回傳TRUE(1)。文件處於唯讀狀態時,當文件發生修改,將會觸發SCN_MODIFYATTEMPTRO事件通知。
2) SCI_GETREADONLY
取得文件唯讀狀態,回傳TRUE(1)或FALSE(0)。
SCI_GETTEXTRANGE
SCI_GETTEXTRANGE(
取得指定範圍文本,如果tr為0,返回0,否則返回文本長度(不包括00的文字和一個0終結符。當tr.chrg.cpMax為-1時,表示到文檔結束位置。你必須確保tr.lpstrText字元緩衝區夠大((tr.chrg.cpMax - tr.chrg.cpMin) + 1)。
SCI_GETSTYLEDTEXT
SCI_GETSTYLEDTEXT(
取得指定範圍樣式文本,與SCI_GETTEXTRANGE類似,但所需字元緩衝區大小是SCI_GETTEXTRANGE (2GETTEXTRAN.chg(TgRd.B. .chrg.cpMin) + 2)。 Scintilla將會自動追加2個0終結符到tr.lpstrText尾部。
SCI_ALLOCATE
SCI_ALLOCATE(int bytes,
分配足夠大的緩衝區,以容納指定大小的位元組,傳回TRUE(1)。只有當指定大小大於目前緩衝區大小時,才會重新分配緩衝區,否則不做任何處理。
SCI_ADDTEXT
SCI_ADDTEXT(int length, const char *s)
在目前位置插入指定文字的指定長度,s是以0結尾的常數字串,傳回0。插入文字後,目前位置處於插入文字之後,但視圖並不會自動進行捲動,使其可見。
SCI_ADDSTYLEDTEXT
SCI_ADDSTYLEDTEXT(int length, cell *s)
在目前位置插入樣式文本,處理方式和SCI_ADDTEXT相似,返回0。
SCI_APPENDTEXT
SCI_APPENDTEXT(int length, const char *s)
在文檔尾部插入文本,處理方式和SCI_ADDTEXT相似,返回0。
SCI_INSERTTEXT
SCI_INSERTTEXT(int pos, const char *text)
在指定位置插入文本,處理方式和SCI_ADDTEXT相似,返回0。當pos為-1時,表示在目前位置插入。
SCI_CLEARALL
SCI_CLEARALL
除非文檔只讀,否則刪除文檔所有字符,返回0。
SCI_CLEARDOCUMENTSTYLE
SCI_CLEARDOCUMENTSTYLE
清除文檔所有樣式信息,返回0。這通常用在需要重新設定文檔樣式的時候。
SCI_GETCHARAT
SCI_GETCHARAT(int position)
傳回指定位置的字元。當position小於0或大於文件結束位置時,傳回0。
SCI_GETSTYLEAT
SCI_GETSTYLEAT(int position)
傳回指定位置的樣式。當position小於0或大於文件結束位置時,傳回0。
SCI_SETSTYLEBITS, SCI_GETSTYLEBITS
1) SCI_SETSTYLEBITS(int bits)
設定位元組中樣式位寬,傳回TRUE(1)。預設為5個bit,最大可以設定為7位,剩餘的bit位將用來表示字元指示器。
2) SCI_GETSTYLEBITS
返回位元組中樣式位寬。
SCI_TARGETASUTF8 *
SCI_TARGETASUTF8(
將目標字串轉換為UTF8編碼格式,傳回編碼文字長度,並將編碼後的位元組填入s中。此訊息只在GTK+平台提供。
SCI_ENCODEDFROMUTF8 *
SCI_ENCODEDFROMUTF8(const char *utf8, char *encoded)
將UTF8格式字串轉換為文件編碼格式,傳回轉換後的字節長度,並將轉換後的位元組長度填入轉換後的字節長度,並將轉換後的位元組長度填入轉換後的字節長度,並將轉換後的位元組長度填入轉換後的字節長度,並將轉換後的字節長度填入轉換後的字節長度,並將轉換後的字節長度填入轉換後。此訊息只在GTK+平台提供。
SCI_SETLENGTHFORENCODE
SCI_SETLENGTHFORENCODE(int bytes)
設定文檔編碼長度,回傳0。
以上就是Scintilla使用指南(2) - 全文檢索和修改的內容,更多相關內容請關注PHP中文網(www.php.cn)!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

1.首先打開釘釘。 2.打開群組聊,點選右上角的三個點。 3.找到我在本群的暱稱。 4.點選進入即可修改儲存。

有些遊戲會自動安裝到使用者資料夾中,而且需要英文資料夾才可以,不過很多朋友不知道win11怎麼修改使用者資料夾名稱,其實我們只要修改使用者名稱就可以了。 win11修改使用者資料夾名稱:第一步,按下鍵盤「Win+R」組合鍵。第二步,在其中輸入「gpedit.msc」回車開啟群組原則編輯器。第三步,展開「windows設定」下的「安全設定「第四步,開啟「本機原則」中的「安全性選項」第五步,雙擊開啟右邊的「帳號:重新命名系統管理員帳號」原則。第六步,在下方輸入想要修改的資料夾名稱再點選「確定」儲存即可。修改使用者資料夾

抖音藍V認證是企業或品牌在抖音平台上的官方認證,有助於提升品牌形象和可信度。隨著企業發展策略的調整或品牌形象的更新,企業可能希望更改抖音藍V認證的名字。那麼,抖音藍V可以改名字嗎?答案是可以的。本文將詳細介紹企業抖音藍V號名稱修改的步驟。一、抖音藍V可以改名字嗎?抖音藍V帳號是可以改名字的。根據抖音官方規定,企業藍V認證帳號在滿足一定條件後,可以申請修改帳號名稱。一般來說,企業需要提供相關的證明資料,如營業執照、組織機構代碼證等,以證明修改名稱的合法性和必要性。二、企業抖音藍V號名稱修改步驟有哪

很多朋友更新好win11系統後,發現win11的介面視窗採用了全新的圓角設計。但是有些人覺得不喜歡這個圓角設計,想要將它修改為曾經的介面,但卻不知道怎麼修改,下面就一起來看看吧。 win11怎麼修改圓角1、win11的圓角設計時內建的系統設置,目前無法修改。 2.所以大家如果不喜歡使用win11的圓角設計的話,可以等微軟提供修改的方法。 3.如果實在使用起來不習慣,還可以選擇退回曾經的win10系統。 4.如果大家不知道如何回退的話,可以查看本站提供的教學。 5.如果使用上方教學無法回退的話,還可

快速掌握PyCharm背景顏色的修改技巧,需要具體程式碼範例近年來,Python語言在程式開發領域愈發流行,而PyCharm作為一款整合開發環境(IDE),被廣大開發者所喜愛和使用。在PyCharm中,經常會有一些開發者對IDE的介面進行個人化定制,包括背景顏色的修改。本文將介紹PyCharm背景顏色修改的技巧,並給出具體的程式碼範例,幫助讀者快速掌握這項技能。

我們在win11系統中,可以透過修改電源模式的方法,來降低我們的電池消耗,或是提高我們的系統效能。設定方法非常簡單,只要找到電源選項就可以了,下面就跟著小編一起來看一下具體的操作流程吧。 win11在哪裡修改電源模式1、先點選工作列最左邊的按鈕,開啟開始功能表。 2、然後在開始功能表上方搜尋並開啟「控制面板」3、在控制面板中,可以找到「硬體和聲音」4、進入硬體和聲音,點擊電源選項下的「選擇電源計畫」5、然後在其中就可以修改電源模式了,可以選擇平衡、節能模式或展開隱藏附加計劃,選擇高性能模式。

win10工作列顏色修改起來非常簡單,但是很多用戶發現設定不了,其實非常的簡單,只要在電腦的個人化裡選擇自己喜愛的顏色就可以了,要是改變不了顏色的注意詳細的設定哦。 win10工作列顏色怎麼改第一步:右鍵桌面-點選個人化第二步:顏色區域自訂第三步:選擇喜歡的顏色PS:如果你無法改變顏色,可以點選顏色->選擇顏色->自訂->預設windows模式,選擇深色即可。

Win10睡眠時間修改技巧大揭密作為目前廣泛使用的作業系統之一,Windows10擁有睡眠功能,幫助使用者在不使用電腦時節省電力並保護螢幕。然而,有時候預設的睡眠時間並不符合使用者的需求,因此了解如何修改Win10睡眠時間就顯得格外重要。本文將揭示Win10睡眠時間修改的技巧,讓您輕鬆自訂系統的睡眠設定。一、透過「設定」修改Win10睡眠時間首先,最簡單的修
