战舰少女r普林斯顿改:vb查找并打开文件的问题

来源:百度文库 编辑:高考问答 时间:2024/05/06 08:04:56
我有100个doc文件,是平常很常用的一些记录.这些文件都对应一个编号如A001,B002
我想做一个程序希望能实现:1.通过这些文件的编号就能打开这些word文档
2.通过输入文件名 来打开文件,并且希望支持模糊查找 比如我想找一个名字为123456.doc的文件 我可以输入24就能将文件名字里含有2和4字符的文件都找到
3.并希望该程序生成 .exe文件后到别的机器上也能用
请高手们提供个思路,代码,越详细越好 谢谢

1.通过这些文件的编号就能打开这些word文档

编号为1的是 a001.doc,编号为2 的是 b002.doc...
可以定义一个函数,用来生成这些文件名

private function FileNames (FileIndex as integer)as string

'如果fileindex是1位数,则变成字串00x;
'如是两位,则变成字串0xx;...
dim fi as string 'fileindex的缩写作变量
dim i as integer
fi=str(fileindex)
fi=ltrim(rtrim(fi)) '变成字串并去掉两边的空格
select case len(fi)
case 1:fi="00"+fi
case 2:fi="0"+fi
end select

'参考ASCII码把 1-a 2-b 3-c ... 对应起来
dim dasc as integer
dasc=asc("A")-asc("1") '求所对应的ASC码差值
FileNames = chr(asc(str(fileindex))+dasc)+fi
end function

2.通过输入文件名 来打开文件,并且希望支持模糊查找

分析:有个取得某目录下的文件名的函数,我忘了,自已去查,这里先设它为 function f() as string;模糊查找,并不知你会输入多少个 字符,你举例是 "24",但也可以是"248"等,所以用 c(1 to len(keyword$)来确定条件成立,要是符合查找条件就把它列入表(list1 控件)

定义过程完成这操作:
private sub checkfile(filename as string,keyword as string)
if keyword="" then exit sub
keyword=ucase(keyword) '字母全部大写
filename=ucase(filename)
dim fm as booleam '布尔型变量是不是这样拼?
dim c(1 to len(keyword)) as booleam
dim i as integer
for i= 1 to len(keyword)
一个个地对照模糊搜索关键字的每个字母
c(i)=(instr(filename,mid(keyword,i,1))>0)
if c(i)=false then exit sub
next
list1.additem filename
end sub

用f()找到一个文件的文件名,就用checkfile()对文件名进行检查

3.并希望该程序生成 .exe文件后到别的机器上也能用

如果同样是16位或32位的个人电脑,我这是VB语言,应当没问题,如果是别的PC机种,那就用兼容性好的可移值的语言写了,比如C语言,思路一样的