Bagikan melalui


ITextRange::Metode FindText (tom.h)

Mencari hingga Menghitung karakter untuk teks yang diberikan oleh bstr. Posisi dan arah awal juga ditentukan oleh Hitungan, dan kriteria pencocokan diberikan oleh Bendera.

Sintaks

HRESULT FindText(
  BSTR bstr,
  long Count,
  long Flags,
  long *pLength
);

Parameter

bstr

Jenis: BSTR

String untuk ditemukan.

Count

Jenis: panjang

Jumlah karakter maksimum yang akan dicari. Ini bisa menjadi salah satu dari berikut ini.

tomForward Mencari di akhir cerita. Ini adalah nilai default.
n (lebih besar dari 0) Mencari maju untuk n karakter, mulai dari cpFirst. Jika rentang itu sendiri cocok dengan bstr, pencarian lain dicoba dari cpFirst + 1.
n(kurang dari 0) Mencari mundur untuk n karakter, mulai dari cpLim. Jika rentang itu sendiri cocok dengan bstr, pencarian lain dicoba dari cpLim– 1.
0 (rentang degenerasi) Pencarian dimulai setelah rentang.
0 (rentang nondegenerasi) Pencarian terbatas pada rentang.
 

Dalam semua kasus, jika string ditemukan, batas rentang diubah menjadi string yang cocok dan pLength diatur sama dengan panjang string. Jika string tidak ditemukan, rentang tetap tidak berubah dan pLength diatur sama dengan nol.

Flags

Jenis: panjang

Bendera yang mengatur perbandingan. Ini bisa 0 (default) atau kombinasi apa pun dari nilai berikut.

tomMatchWord 2 Cocok dengan seluruh kata.
tomMatchCase 4 Cocok dengan kasus.
tomMatchPattern 8 Cocok dengan ekspresi reguler.

pLength

Jenis: panjang*

Panjang string yang cocok.

Nilai kembali

Jenis: HRESULT

Metode mengembalikan nilai HRESULT . Jika metode berhasil, metode akan mengembalikan S_OK. Jika metode gagal, metode akan mengembalikan S_FALSE. Untuk informasi selengkapnya tentang kode kesalahan COM, lihat Penanganan Kesalahan di COM.

Keterangan

Metode ITextRange::FindText juga dapat mencocokkan karakter khusus dengan menggunakan tanda sisipan (^) diikuti dengan huruf khusus. Untuk daftar karakter khusus, lihat daftar Khusus yang tersedia di kotak dialog Microsoft Word Temukan dan Ganti. Misalnya, ^p cocok dengan tanda paragraf berikutnya. Catatan, ^c dapat digunakan untuk mewakili konten Clipboard dalam string yang akan diganti. Dengan demikian, menggunakan ^c dalam string temukan memungkinkan Anda mencari teks kaya. Untuk detail selengkapnya, lihat file Bantuan Word.

Sebagai perbandingan dengan metode ITextRange::FindText , metode ITextRange::FindTextStart mencari maju atau mundur dari rentang Mulai cp, dan metode ITextRange::FindTextEnd mencari ke depan atau mundur dari cp Akhir rentang. Untuk detail selengkapnya, lihat deskripsi metode ini.

Berikut ini adalah beberapa cuplikan kode yang menunjukkan metode ITextRange::FindText .

Contoh #1. Program Microsoft Visual Basic for Applications (VBA) berikut mencetak semua komentar /* ... */ dalam cerita yang diidentifikasi oleh rentang r.

Sub PrintComments (r As ITextRange)
    r.SetRange 0, 0                                      'r = insertion pt at start of story
    Do While r.FindText("/*") And r.FindTextEnd("*/")    'Select comment
        r.MoveStart tomCharacter, 2                      'But do not include the opening or 
                                                         'closing comment brackets
        r.MoveEnd tomCharacter, -2                       
        Print r                                          'Show the folks
    Loop
End Sub

Alih-alih komentar ini dicetak, komentar tersebut dapat disisipkan ke dalam instans edit lain dan disimpan ke file, atau dapat disisipkan ke dalam sel terpisah dalam tabel atau lembar bentang.

Untuk mencetak semua baris yang berisi satu atau beberapa kemunculan kata "laser", ganti perulangan dengan kode berikut:

    While r.FindText("laser")            // Select next occurrence of "laser"
        r.Expand tomLine                // Select enclosing line    
        Print r                    // Print the line
    Wend

Contoh #2. Program berikut mencetak daftar telepon, mengingat cerita yang berisi daftar alamat. Entri daftar alamat dipisahkan oleh dua tanda paragraf atau lebih, dan setiap entri memiliki formulir berikut.

Person/Business Name
Address (one or more lines)
(area code) telephone number 

Perhatikan penggunaan karakter ^p dalam argumen string FindText untuk menemukan sepasang tanda paragraf berturut-turut.

Sub PrintTelephoneList (r As ITextRange)
    r.SetRange 0, 0                 // r = insertion point at start of story
    r.MoveWhile C1_WHITE            // Bypass any initial white space
    Do
        r.EndOf tomParagraph, 1     // Select next para (line): has name
        Print r                    // Print it
        Do
            r.MoveWhile C1_SPACE        // Bypass possible space chars
            If r.Char = Asc("(") Then Exit Do    // Look for start of telephone #
        Loop While r.Move(tomParagraph)    // Go to next paragraph
        r.EndOf tomParagraph, 1        // Select line with telephone number
        Print r                    // Print it
    Loop While r.FindText("^p^p")        // Find two consecutive para marks
End Sub

Contoh #3. Sub-rutin berikut menggantikan semua kemunculan string, str1, dalam rentang menurut str2:

Sub Replace ( tr As ITextRange, str1 As String, str2 As String )
    Dim r As ITextRange
    r = tr.Duplicate                // Copy tr parameters to r
    r.End = r.Start                    // Convert to insertion point at Start
    While r.FindText(str1, tr.End - r.End)        // Match next occurrence of str
        r = str2                // Replace it with rep
    Wend                        // Iterate till no more matches
End Sub

Contoh #4. Baris kode berikut menyisipkan kosong sebelum terjadinya tanda kurung kanan pertama, "(", yang mengikuti terjadinya HRESULT.

    If r.FindText("HRESULT") And r.FindText("(") Then r = " ("

Untuk melakukan ini untuk semua kemunculan tersebut, ubah perulangan If menjadi While/Wend di baris kode di atas. Ini contoh makro FIND/REPLACE yang tidak dapat dijalankan dengan kotak dialog Temukan dan Ganti .

Persyaratan

   
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003 [hanya aplikasi desktop]
Target Platform Windows
Header tom.h
DLL Msftedit.dll

Lihat juga

Konseptual

FindTextEnd

FindTextStart

ITextRange

Referensi

Model Objek Teks