Bagikan melalui


ITextRange::Metode SetChar (tom.h)

Mengatur karakter pada posisi awal rentang.

Sintaks

HRESULT SetChar(
  long Char
);

Parameter

Char

Jenis: panjang

Nilai baru untuk karakter pada posisi awal.

Mengembalikan nilai

Jenis: HRESULT

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

Menampilkan kode Deskripsi
E_ACCESSDENIED
Teks dilindungi-tulis.
E_OUTOFMEMORY
Kehabisan memori.

Keterangan

ITextRange::SetChar memungkinkan Anda menentukan kode karakter yang tepat untuk digunakan. Namun, literal string dengan glyph yang terlihat serupa dapat menyesatkan.

Karakter yang ditetapkan oleh metode ini adalah LONG , bukan BSTR. Ini menyembunyikan cara mereka disimpan di penyimpanan backing, (sebagai byte, kata- kata, panjang variabel, dan sebagainya).

Sering kali pada sistem yang tidak memiliki pembungkus kata otomatis, dokumen memiliki pengembalian pengangkutan keras yang dimasukkan hanya untuk jeda baris. Kode berikut menunjukkan cara sederhana, tetapi tidak sempurna, untuk mengonversi pengangkutan keras seperti itu kembali kosong untuk cerita yang terkait dengan rentang r.

    Sub EnableWrap(r As ITextRange)   // Convert false hard CRs to soft
        r.SetRange 0, 0               // r is set at start of story
        While r.Move(tomParagraph)    // Go to start of next paragraph
            If r.MoveWhile(C1_WHITE, 1) = 0 Then    // Next char isn't white space
                r.Move tomCharacter, -1
                r.SetChar = Asc(" ")    // Replace CR by blank
            End If
        Wend        // Loop till no more CRs in story
    End Sub

Atau, Anda dapat menggunakan yang berikut ini di dalam perulangan IF.

r.MoveStart tomCharacter, -1        // Select previous char (the CR)
r = " "        // Replace it with a blank

Pendekatan ini memungkinkan Anda membungkus teks ke lebar lain. Namun, algoritma tidak sempurna: ini mengasumsikan bahwa pengembalian pengangkutan keras yang diikuti oleh apa pun selain spasi kosong (kosong, tab, umpan garis, pengembalian pengangkutan, dan sebagainya) harus diganti dengan kosong. Algoritma juga mengasumsikan bahwa karakter pengembalian pengangkutan adalah karakter tunggal seperti carriage return atau karakter 0x2029 unicode end-of-paragraph (EOP). Dan, pengembalian pengangkutan kombinasi dan umpan baris tidak cocok dan akan memerlukan penulisan dan eksekusi lebih banyak kode (atau gunakan FindText(^p)). Perhatian lain adalah bahwa ada kasus lain, seperti kode campuran dan dokumentasi, di mana algoritma tidak berfungsi dengan benar.

Namun, ITextRange::SetChar lebih efisien daripada operasi penggantian yang dilakukan oleh penghapusan diikuti dengan penyisipan. Dengan demikian, menulis ulang kode tanpa menggunakan ITextRange::SetChar mungkin akan jauh lebih lambat.

Properti Karakter , yang dapat melakukan sebagian besar hal yang dapat dilakukan koleksi karakter, memiliki dua keuntungan besar: dapat mereferensikan karakter apa pun dalam cerita induk alih-alih terbatas pada rentang induk, dan secara signifikan lebih cepat, karena LONGdaripada objek rentang terlibat. Karena keunggulan ini, Model Objek Teks (TOM) tidak mendukung koleksi karakter.

Persyaratan

Persyaratan Nilai
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

ITextRange

Referensi

Model Objek Teks