如何实现子目录查找,并显示在shelllistview中 就是设计一个程序,在文本框中输入要查找的文件名,shelllistview可以根据这个字符串定位子目录(不需要查找子目录下的文件)。如果要支持中文拼音搜索,是不是还要设计一个数据库,该如何实现,中文转换拼音已经解决了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 貌似windows文件管理器也没有中文拼音搜索啊,怎么设计,求解!~ 给你一个函数,返回中文的拼音首字母:function CnPYIndex(const CnString: string): string;const ChinaCode: array[0..25, 0..1] of Integer = ((1601, 1636), (1637, 1832), (1833, 2077), (2078, 2273), (2274, 2301), (2302, 2432), (2433, 2593), (2594, 2786), (9999, 0000), (2787, 3105), (3106, 3211), (3212, 3471), (3472, 3634), (3635, 3722), (3723, 3729), (3730, 3857), (3858, 4026), (4027, 4085), (4086, 4389), (4390, 4557), (9999, 0000), (9999, 0000), (4558, 4683), (4684, 4924), (4925, 5248), (5249, 5589));var i, j, HzOrd: integer;begin i := 1; Result := ''; while i <= Length(CnString) do begin if (CnString[i] >= #160) and (CnString[i + 1] >= #160) then begin HzOrd := (Ord(CnString[i]) - 160) * 100 + Ord(CnString[i + 1]) - 160; for j := 0 to 25 do begin if (HzOrd >= ChinaCode[j][0]) and (HzOrd <= ChinaCode[j][1]) then begin Result := Result + char(byte('A') + j); break; end; end; Inc(i); end else Result := Result + CnString[i]; Inc(i); end;end; 返回拼音首字母已经实现了,接下来就不知道怎么实现搜索功能了,通过首字母怎么匹配文件夹名?文件夹名都是中文的,貌似windows文件管理器也没有中文拼音搜索 首先得出子目录下所有文件名将其放到某一队列中,然后得出所有文件名对应的拼音按照文件名顺序放到另一队列中,然后查找拼音队列中那些首字符符合条件,得出其在队列中的index,然后文件名队列中对应index就是你需要的文件名了 excel导入问题 恐怖份子在广州的不幸遭遇 TabControl控件和PageControl 控件的区别吗? 有谁知道? 初学者的问题 关于一个combobox的问题 关于多层结构应用,求救 如何在Socket Server端加入用户/密码机制,使客户端必须提供用户/密码才能连接socket sever? 关于myconnection的小疑惑 分布式多层应用! 如何利用mapi向outlook中自动填写“收件人”内容? 今天是儿童节,祝所有宝宝节日快乐! 如何知道stringGrid某一个单元格的状态?
const
ChinaCode: array[0..25, 0..1] of Integer = ((1601, 1636), (1637, 1832), (1833, 2077),
(2078, 2273), (2274, 2301), (2302, 2432), (2433, 2593), (2594, 2786), (9999, 0000),
(2787, 3105), (3106, 3211), (3212, 3471), (3472, 3634), (3635, 3722), (3723, 3729),
(3730, 3857), (3858, 4026), (4027, 4085), (4086, 4389), (4390, 4557), (9999, 0000),
(9999, 0000), (4558, 4683), (4684, 4924), (4925, 5248), (5249, 5589));
var
i, j, HzOrd: integer;
begin
i := 1;
Result := '';
while i <= Length(CnString) do
begin
if (CnString[i] >= #160) and (CnString[i + 1] >= #160) then
begin
HzOrd := (Ord(CnString[i]) - 160) * 100 + Ord(CnString[i + 1]) - 160;
for j := 0 to 25 do
begin
if (HzOrd >= ChinaCode[j][0]) and (HzOrd <= ChinaCode[j][1]) then
begin
Result := Result + char(byte('A') + j);
break;
end;
end;
Inc(i);
end
else
Result := Result + CnString[i];
Inc(i);
end;
end;
返回拼音首字母已经实现了,接下来就不知道怎么实现搜索功能了,通过首字母怎么匹配文件夹名?文件夹名都是中文的,貌似windows文件管理器也没有中文拼音搜索