Fungsi dari fungsi ini adalah untuk mencegat string campuran Inggris-Mandarin yang ditentukan dan menjaga panjang tampilan tetap satu. Yaitu mencegat satu karakter Mandarin sebagai dua kata bahasa Inggris. Deskripsi: Fungsi dari fungsi ini adalah untuk mencegat string campuran Inggris-Mandarin yang ditentukan dan menjaga panjang tampilan tetap satu. Yaitu mencegat satu karakter Mandarin sebagai dua kata bahasa Inggris.
Tujuan: Umumnya digunakan dalam daftar tampilan judul untuk menghindari penyisipan string yang dicegat secara tidak merata.
kode program
Copy kode kodenya sebagai berikut:
'//string A_strString yang akan diproses
'//A_intLen didasarkan pada jumlah karakter bahasa Inggris
'//A_strAddString Jika A_strString memiliki akhiran yang ditambahkan saat mencegat karakter, seperti:..., maka karakter tersebut boleh kosong
fungsi CutString(olehval A_strString,olehval A_intLen,olehval A_strAddString)
redupkan MM_objRe,MM_objMs,MM_objMh
dimMM_strCut,MM_intLen
setMM_objRe=RegExp baru
MM_objRe.Global=true'pencarian global
MM_objRe.IgnoreCase=true' tidak peka huruf besar-kecil
MM_objRe.Pattern=[^/x00-/xff]
MM_intLen=A_intLen
jika len(A_strString)<=A_intLen maka
MM_strCut=A_strString
kalau tidak
MM_strCut=kiri(A_strString,MM_intLen)
atur MM_objMs=MM_objRe.execute(MM_strCut)
jika MM_objMs.count<>MM_intLen maka
untuk setiap MM_objMh di MM_objMs
jika MM_objMh.FirstIndex<MM_intLen lalu
MM_intLen=MM_intLen-1
kalau tidak
keluar untuk
berakhir jika
Berikutnya
kalau tidak
MM_intLen=MM_intLen/2
berakhir jika
MM_strCut=kiri(A_strString,MM_intLen) & A_strAddString
berakhir jika
CutString=MM_strPotong
setMM_objRe=tidak ada
fungsi akhir
Ini berbeda dengan yang populer saat ini di Internet. Ekspresi reguler digunakan untuk mendapatkan karakter non-ANSI (karakter default non-ANSI di sini adalah karakter Cina. Jika ada penyimpangan, ekspresi reguler dapat dimodifikasi untuk mencapai tujuan) . Pertama-tama, harap diperhatikan: panjang fungsi yang ditentukan didasarkan pada jumlah karakter bahasa Inggris. Artinya, ditetapkan sebagai 10, yang berarti 10 karakter Inggris atau 5 karakter Cina.
Dua optimasi telah dilakukan:
Poin pertama: Dapatkan langsung karakter dengan panjang yang ditentukan, karena apakah itu semua karakter Cina atau semua bahasa Inggris, yang terpanjang hanyalah panjang semua bahasa Inggris, dan karakter yang melebihinya adalah karakter yang dihilangkan sama sekali.
Poin kedua: Gunakan ekspresi reguler untuk menemukan karakter China dalam rentang tersebut, dan hanya melintasi jumlah kata dari setiap karakter China, yang dapat meminimalkan jumlah loop.