delphi中實現漢字拼音聲母查詢,unit**如下:
unit unit1;
inte***ce
uses
windows, messages, sysutils, classes, graphics, controls, forms, dialogs,
stdctrls;
type
tform1 = class(tform)
listbox1: tlistbox;
listbox2: tlistbox;
edit1: tedit;
label1: tlabel;
procedure edit1change(sender: tobject);
procedure formshow(sender: tobject);
procedure formdestroy(sender: tobject);
procedure edit1enter(sender: tobject);
procedure edit1exit(sender: tobject);
private
public
resultlist1:tstrings;
end;
varform1: tform1;
procedure searchbypyindexstr(pyindexstr :string);
implementation
function getpyindexchar(hzchar:string):string;
begin
case (word(hzchar[1]) shl 8 + word(hzchar[2])) of
$b0a1..$b0c4 : result :='a';
$b0c5..$b2c0 : result :='b';
$b2c1..$b4ed : result :='c';
$b4ee..$b6e9 : result :='d';
$b6ea..$b7a1 : result :='e';
$b7a2..$b8c0 : result :='f';
$b8c1..$b9fd : result :='g';
$b9fe..$bbf6 : result :='h';
$bbf7..$bfa5 : result :='j';
$bfa6..$c0ab : result :='k';
$c0ac..$c2e7 : result :='l';
$c2e8..$c4c2 : result :='m';
$c4c3..$c5b5 : result :='n';
$c5b6..$c5bd : result :='o';
$c5be..$c6d9 : result :='p';
$c6da..$c8ba : result :='q';
$c8bb..$c8f5 : result :='r';
$c8f6..$cbf9 : result :='s';
$cbfa..$cdd9 : result :='t';
$cdda..$cef3 : result :='w';
$cef4..$d1b8 : result :='x';
$d1b9..$d4d0 : result :='y';
$d4d1..$d7f9 : result :='z';
else
result := char(0);
end;
end;
procedure searchbypyindexstr(pyindexstr :string);
label notfound;
vari, j :integer;
hzchar :string;
begin
for i:=0 to form1.listbox1.items.count-1 do
begin
for j:=1 to length(pyindexstr) do
begin
hzchar :=form1.listbox1.items[i][2*j-1]+form1.listbox1.items[i][2*j];
if (pyindexstr[j] <>'?') and (uppercase(pyindexstr[j])<>getpyindexchar(hzchar)) then
goto notfound;
end;
form1.resultlist1.add(form1.listbox1.items[i]);
notfound:
end;
end;
procedure tform1.edit1change(sender: tobject);
begin
if edit1.text<>'' then
begin
listbox2.items.clear;
form1.resultlist1.clear;
searchbypyindexstr(edit1.text);
listbox2.items.addstrings(resultlist1);
end;
end;
procedure tform1.formshow(sender: tobject);
begin
resultlist1:=tstringlist.create;
end;
procedure tform1.formdestroy(sender: tobject);
begin
resultlist1.free;
end;
procedure tform1.edit1enter(sender: tobject);
begin
edit1.text:='';
end;
procedure tform1.edit1exit(sender: tobject);
begin
edit1.text:='請輸入聲母';
end;
end.
Delphi中處理漢字的方法
在delphi中一個漢字佔兩個位元組,各種字串處理函式,直接處理字串中漢字時經常會發生亂碼或不顯示。我在處理時也是弄了半天,到處找資料,一下是找到的幾種處理方法。在delphi7下測試通過。一.中文所用的字元全是雙位元組字元,英文所用的位元組全是單位元組字元,也就是mbsinglebyte。本例項是...
delphi 中 unicode 轉漢字 函式
近期用到這個函式,無奈沒有找到 delphi 自帶的,網上找了下 有類似的,沒有現成的,我需要的是 支援 u4f00 這種格式的,即前面帶標準的 u 於是改造了一下。下面是 解碼 函式 方便有需要的人吧,我自己也需要 unicode轉漢字 支援自動過濾非 unicode編碼,即非 unicode編碼...
delphi中URL的漢字編碼
show.asp?sort 全部 sortlevel 1 gorq 供 n 5 sitename 全部 img yes imgfile images dot g.gif 在delphi2010中,因為引入unicode的緣故,預設的成了3個 xx,導致我的程式出現問題,找了半天,每一個函式能夠實現全...
用Delphi7 0實現漂亮的漢字視窗
在視覺化開發的時代,窗體是絕大部分應用程式的核心,但是開發者也許已對windows一成不變的方形窗體感到厭煩。其實巧妙地使用api函式即可實現漢字形狀的窗體。本文的例項執行後將顯示一個由 電腦報 三個漢字作為外形的窗體。當然你還可以利用本期講的方法實現更有個性的漢字視窗。設計思路 1 使用begin...
CEGUI中的漢字顯示實現
幾日前,用 cegui 做介面,發現無法應用 cegui 的window 中settext 函式直接顯示中文。上網 google 一下,原來經過簡單的字元轉化可以顯示中文 偷著樂,cegui 太方便了 方法如下 引用 cegui 使用utf8 編碼格式。這就意味著我們可以很簡單的就顯示中文。1 弄個...