ホームページ バックエンド開発 PHPチュートリアル Scintilla ユーザーガイド (2) - 全文検索と変更

Scintilla ユーザーガイド (2) - 全文検索と変更

Jan 17, 2017 am 10:26 AM

Scintilla では、各文字の後に文字スタイルを表すバイトが続きます。文字バイトとスタイル バイトは合わせて文字ユニットを形成します。スタイル バイトの 8 ビットは、文字スタイルと文字インジケータの 2 つの部分に分かれています。テキストの文字インジケーターは、SCI_INDICATORFILLRANGE メッセージを通じて設定できます。デフォルトでは、下位 5 ビットが文字スタイル、上位 3 ビットが文字インジケーターです。したがって、32 個の文字スタイルが存在する可能性があります。構文エラー、非推奨の名前、不正なインデント、その他の情報を示すために使用できる 3 つの独立した文字インジケーター。 SCI_SETSTYLEBITS メッセージを使用して文字スタイル ビットを最大 7 ビットに設定でき、残りは文字インジケーターに割り当てられます。
Position は、Scintilla 内の文字または文字の前の空白点の位置を示します。最初の文字の位置は 0、2 番目の文字は 1 などとなります。ドキュメントに nLen 文字が含まれている場合、最後の文字の位置は nLen – 1 になります。カーソルは 2 つの文字の間に存在し、最初の文字の前 (0) と最後の文字 (nLen) の後に配置できます。
2文字を1文字として扱う場合、2文字の間にカーソルを置くことはできません。この状況は通常、中国語などのマルチバイト文字、または行終端記号が 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) テキストが 0 ではなく、長さが 0 より大きい場合、長さ - 1 が返され、テキストは位置 0 から始まる長さ - 1 の文字と 0 ターミネータで埋められます。長さがドキュメントの長さより大きい場合、余分な位置はヌル文字 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(, const char *text)

ドキュメントのテキストを、0 で終わる定数文字列である text に設定します。テキストが 0 の場合は FALSE (0) を返し、それ以外の場合は TRUE (1) を返します。

SCI_SETSAVEPOINT
SCI_SETSAVEPOINT
ログイン後にコピー

セーブポイントを設定すると、ドキュメントのステータスが未変更に変更され、TRUE (1) が返されます。 SCI_SETSAVEPOINT メッセージは、SCN_SAVEPOINTREACHED イベント通知をトリガーします。ドキュメントのステータスが変更済みに変わると、SCN_SAVEPOINTLEFT イベント通知がトリガーされます。


SCI_GETLINE

SCI_GETLINE(int line, char *text)

指定された行のテキストを取得し、指定された行のテキストの長さ (行末文字を含む) を返します。行番号 line は 0 から始まります。行番号が最大行番号より大きい場合は 0 が返されます。 text が 0 の場合、指定されたテキスト行の長さが直接返されます。text が 0 以外の場合、テキストは指定されたテキスト行で埋められますが、ターミネータ 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(, const char *text)

選択したテキストを置換します。text は 0 で終わる定数文字列です。テキストが選択されていない場合は、現在の位置にテキストが挿入されます。置換後、カーソルは挿入されたテキストの後ろに移動し、テキストが表示されるようにビューが自動的にスクロールします。テキストが 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(, TextRange *tr)

指定されたテキスト範囲を取得します。tr が 0 の場合は 0 を返し、それ以外の場合はテキストの長さ (0 ターミネータを除く) を返し、tr.lpstrText を埋めます。テキストの指定範囲とゼロ終端文字として。 tr.chrg.cpMax が -1 の場合、ドキュメントの終わりを意味します。 tr.lpstrText 文字バッファーが十分な大きさであることを確認する必要があります ((tr.chrg.cpMax - tr.chrg.cpMin) + 1)。

SCI_GETSTYLEDTEXT

SCI_GETSTYLEDTEXT(, TextRange *tr)

SCI_GETTEXTRANGE と同様に、指定された範囲のスタイル テキストを取得しますが、必要な文字バッファ サイズは SCI_GETTEXTRANGE (2 * (tr.chrg. cpMax - tr.chrg.cpMin) + 2)。 Scintilla は、tr.lpstrText の末尾に 2 つのゼロ ターミネータを自動的に追加します。

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(intposition)
指定された位置にある文字を返します。位置が 0 より小さい場合、またはドキュメントの末尾より大きい場合は、0 が返されます。

SCI_GETSTYLEAT

SCI_GETSTYLEAT(intposition)
指定された位置のスタイルを返します。位置が 0 より小さい場合、またはドキュメントの末尾より大きい場合は、0 が返されます。

SCI_SETSTYLEBITS、SCI_GETSTYLEBITS

1) SCI_SETSTYLEBITS(int bits)
スタイルビット幅をバイトに設定し、TRUE(1)を返します。デフォルトは 5 ビットで、最大値は 7 ビットに設定できます。残りのビットは文字インジケーターを表すために使用されます。
2) SCI_GETSTYLEBITS
スタイルのビット幅をバイト単位で返します。

SCI_TARGETASUTF8 *

SCI_TARGETASUTF8(, char *s)
ターゲット文字列を UTF8 エンコード形式に変換し、エンコードされたテキストの長さを返し、エンコードされたバイトを s に埋めます。このメッセージは GTK+ プラットフォームでのみ使用できます。

SCI_ENCODEDFROMUTF8 *

SCI_ENCODEDFROMUTF8(const char *utf8, char *encoded)
UTF8 形式の文字列をドキュメントのエンコード形式に変換し、変換されたバイト長を返し、変換されたバイトをエンコードされたものに埋めます。このメッセージは GTK+ プラットフォームでのみ使用できます。

SCI_SETLENGTHFORENCODE

SCI_SETLENGTHFORENCODE(int bytes)
ドキュメントのエンコード長を設定し、0を返します。

上記は Scintilla ユーザーガイド (2) - 全文検索と変更の内容です。その他の関連コンテンツについては、PHP 中国語 Web サイト (www.php.cn) に注目してください。


このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

DingTalk のグループ内の個人名を変更する方法_DingTalk のグループ内の個人名を変更する方法 DingTalk のグループ内の個人名を変更する方法_DingTalk のグループ内の個人名を変更する方法 Mar 29, 2024 pm 08:41 PM

1. まずDingTalkを開きます。 2. グループ チャットを開き、右上隅にある 3 つの点をクリックします。 3. このグループで私のニックネームを見つけます。 4. クリックして入力し、変更して保存します。

ユーザーフォルダー名を変更する方法: Win11 チュートリアル ユーザーフォルダー名を変更する方法: Win11 チュートリアル Jan 09, 2024 am 10:34 AM

一部のゲームはユーザー フォルダーに自動的にインストールされ、英語のフォルダーが必要になりますが、win11 でユーザー フォルダー名を変更する方法がわからない人も多く、実際にはユーザー名を変更するだけです。 win11 でユーザー フォルダー名を変更する: 最初のステップは、キーボードの「Win+R」キーの組み合わせを押すことです。 2 番目の手順では、「gpedit.msc」と入力し、Enter キーを押してグループ ポリシー エディターを開きます。ステップ 3: [Windows 設定] の [セキュリティ設定] を展開します。 ステップ 4: [ローカル ポリシー] の [セキュリティ オプション] を開きます。 ステップ 5: ダブルクリックして、右側の [アカウント: システム管理者アカウントの名前変更] ポリシーを開きます。ステップ 6: 以下に変更したいフォルダーの名前を入力し、「OK」をクリックして保存します。ユーザーフォルダーを変更する

win11 ウィンドウの角を丸い角に変更するためのガイド win11 ウィンドウの角を丸い角に変更するためのガイド Dec 31, 2023 pm 08:35 PM

win11システムを更新した後、多くの友人は、win11インターフェイスウィンドウが新しい角の丸いデザインを採用していることに気付きました。しかし、この角の丸いデザインが気に入らず、以前のインターフェースに変更したいが、変更方法がわからないという人もいます。 win11 で角丸を変更する方法 1. win11 の角丸デザインは組み込みのシステム設定であり、現時点では変更できません。 2. したがって、win11 の角の丸いデザインを使用するのが気に入らない場合は、Microsoft が変更方法を提供するまで待つことができます。 3. どうしても慣れない場合は、以前の win10 システムに戻すこともできます。 4. ロールバックする方法がわからない場合は、このサイトで提供されているチュートリアルを確認してください。 5. 上記のチュートリアルを使用して戻ることができない場合でも、戻ることができます。

Douyin Blue V の名前は変更できますか?法人Douyin Blue Vアカウントの名前を変更する手順は何ですか? Douyin Blue V の名前は変更できますか?法人Douyin Blue Vアカウントの名前を変更する手順は何ですか? Mar 22, 2024 pm 12:51 PM

Douyin Blue V 認証は、Douyin プラットフォーム上の企業またはブランドの公式認証であり、ブランド イメージと信頼性の向上に役立ちます。企業の発展戦略の調整やブランドイメージの更新に伴い、企業はDouyin Blue V認証の名称を変更したい場合があります。では、Douyin Blue V は名前を変更できるのでしょうか?答えは「はい」です。この記事では、エンタープライズ Douyin Blue V アカウントの名前を変更する手順を詳しく紹介します。 1.Douyin Blue V の名前は変更できますか? Douyin Blue V アカウントの名前は変更できます。 Douyin の公式規定によると、企業の Blue V 認定アカウントは、一定の条件を満たした後にアカウント名の変更を申請できます。一般的に、企業は社名変更の合法性と必要性​​を証明するために、営業許可証、組織コード証明書などの関連資料を提供する必要があります。 2. 企業のDouyin Blue Vアカウントの名前を変更する手順は何ですか?

Win11の電源モード変更場所と方法 Win11の電源モード変更場所と方法 Dec 30, 2023 pm 05:25 PM

win11 システムでは、電源モードを変更することでバッテリー消費を削減したり、システムのパフォーマンスを向上させることができます。設定方法は電源オプションから行うだけなので非常に簡単ですが、エディターに従って具体的な操作手順を見ていきましょう。 win11 で電源モードを変更する方法 1. まず、タスクバーの左端のボタンをクリックして、スタート メニューを開きます。 2. 次に、スタート メニューの上にある「コントロール パネル」を検索して開きます。 3. コントロール パネルで、「ハードウェアとサウンド」を見つけます。 4. 「ハードウェアとサウンド」と入力し、電源オプションの下にある「電源プランの選択」をクリックします。 5. 次に、電力モードを変更することができ、バランスの取れた省エネ モードを選択したり、非表示の追加プランを拡張して高パフォーマンス モードを選択したりできます。

pipソースを高速化し、ダウンロード速度が遅い問題を解決します pipソースを高速化し、ダウンロード速度が遅い問題を解決します Jan 17, 2024 am 10:18 AM

ダウンロード速度が遅いという問題を解決するには、pip ソースをすばやく変更します。特定のコード サンプルが必要です。 はじめに: Python を使用した開発プロセスでは、pip を使用してさまざまなサードパーティ ライブラリをインストールする必要がよくあります。ただし、ネットワーク環境の制限やデフォルトのソースの問題により、pip のダウンロード速度が非常に遅くなることが多く、開発に不便をもたらします。したがって、この記事では、ダウンロード速度が遅いという問題を解決するために pip ソースをすばやく変更する方法と、具体的なコード例を紹介します。 1. 問題分析 pip を使用してサードパーティのライブラリをダウンロードする場合、

PyCharm の背景色調整のヒント: すぐにマスターしましょう! PyCharm の背景色調整のヒント: すぐにマスターしましょう! Feb 03, 2024 am 09:39 AM

PyCharm の背景色を変更するスキルをすぐに習得するには、具体的なコード例が必要です。近年、プログラム開発の分野では Python 言語がますます人気があり、統合開発環境 (IDE) として PyCharm が使用されるようになりました。 、大多数の開発者に愛され、使用されています。 PyCharm では、一部の開発者が背景色の変更など、IDE インターフェイスをカスタマイズすることがよくあります。この記事では、PyCharm の背景色を変更するテクニックを紹介し、読者がこのスキルをすぐに習得できるように具体的なコード例を示します。

Windows 10のタスクバーの色を変更する方法 Windows 10のタスクバーの色を変更する方法 Jan 01, 2024 pm 09:05 PM

Windows 10 でタスク バーの色を変更するのは非常に簡単ですが、多くのユーザーは設定できないことに気づきました。実際、それは非常に簡単です。コンピューターの個人用設定で好みの色を選択するだけです。色を変更できない場合は、細かい設定にも注目してください。 Win10 タスクバーの色を変更する方法 ステップ 1: デスクトップを右クリックし、[個人設定] をクリックします。 ステップ 2: カラー領域をカスタマイズします。 ステップ 3: 好きな色を選択します。 PS: 色を変更できない場合は、[色] -> [色] をクリックします。 [色] -> [カスタマイズ] -> [デフォルトのウィンドウ モード] を選択し、暗い色を選択します。

See all articles