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 |
---|---|
|
Teks dilindungi-tulis. |
|
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
Referensi