毕业设计---VB之批量重命名软件的设计与制作.docx_第1页
毕业设计---VB之批量重命名软件的设计与制作.docx_第2页
毕业设计---VB之批量重命名软件的设计与制作.docx_第3页
毕业设计---VB之批量重命名软件的设计与制作.docx_第4页
毕业设计---VB之批量重命名软件的设计与制作.docx_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

vb之批量重命名软件的设计与制作毕业设计(论文)专 业 _通信工程系 _班 次 09611 _姓 名_刁铃刚_指导老师 唐霆 _成都电子机械高等专科学校二0一二年 vb之批量重命名软件的设计与制作摘要:随着社会的发展,人们生活水平的提高,电脑越来越普及,电脑的功能也越来越复杂和多样化,由此人们电脑上的数据和文件都是越来越多越来越乱,这将很大程序上影响人们对电脑文件的分类和管理。人们在文件多的情况下分类一般都会采用文件夹的分半和文件的有序命名来方便管理和找查文件。其中批量命名文件就是一个很大的问题也是一个很繁琐的事情。这时,我们就可以制作一个软件来帮我们进行大批量文件的命名问题。通过制作这个软件,人们电脑上无论有多少文件,都能很快的进行分类和有序的命名,实现文件的管理合理化。本文采用visual basic开发程序制作了一个文件批量命名的软件,软件的功能很实用,也很大程度上满足了绝大多数的命名要求。关键词 vb;批量命名;文件命名;设计;制作目录毕业设计(论文)0第一章绪论4第二章课题使用工具52.1 visual basic52.2 visual basic 特点5第三章软件的功能设计与分析63.1 本软件应该具有哪些功能63.2 这些功能实现分析63.3 软件的操作流程图7第四章软件功能的详细设计84.1 目录导入84.2 文件列表84.3 列表排序9(1)文件大小排序:9(2)随机排序:10(3)倒序排列:10(4)第n个数字排序:10(5)创建时间排序:114.4 命名规则12(1):修第text4.txt个字符开始的text5.txt个字符为xxxx13(2):文件名中的text10.txt字符修改为text11.txt字符14(3):文件名中的text12.txt字符修改为text12.txt个随机字符14(4):将阿拉伯数字全改为小写中文15(5):大小写字母修改(互变,变小,变大)16(6)将文件名前面依次加上1,2,3,4,5,6.17(7)依次把字符串text13.txt修改为text1.txt, text1.txt+1174.5 结果预览184.6 执行返回194.7 确认命名20第五章 软件的其它功能21帮助系统21结语22参考文献2321 cec|毕业设计vb之批量重命名软件的设计第一章 绪论如今是个信息化社会,电子产品的发展是很迅速的。在政治、经济、军事、文化、教育、科学、艺术等各类活动中都会产生和需求大量信息,这些信息又通过大量的数据来存储和传递。随着科学技术的发展和进步,计算机作为信息处理的工具,其优越性也越来越明显。今天的计算机已不再仅仅是数据计算、文件管理和军事部门进行科研的领域,而是变成了一个开发项目和使用信息资源的覆盖全球的信息海洋。在internet 上,按从事的业务分类包括了广告公司,航空公司,农业生产公司,艺术,导航设备,书店,化工,通信,计算机,咨询,娱乐,财贸,各类商店,旅馆等等100多类,覆盖了社会生活的方方面面,构成了一个信息社会的缩影。同时,internet的应用业渗透到了各个领域,从学术研究到股票交易、从学校教育到娱乐游戏、从联机信息检索到在线居家购物等,都有明显的进步。在计算机发展如此迅速的今天,我们应该至少学会制作简单的软件,帮我们自己能够完成一些繁琐的事情。而这次我写的论文就制作了一个软件,功能也就是帮我们日常生活中遇到很多文件需要命名时带来的麻烦问题。设计和制作难免有不足之处,忘大家提出建议和意见。第二章 课题使用工具2.1 visual basicvisual basic是一种由微软公司开发的包含协助开发环境的事件驱动编程语言。从任何标准来说,vb都是世界上使用人数最多的语言不仅是盛赞vb的开发者还是抱怨vb的开发者的数量。它源自于basic编程语言。vb拥有图形用户界面(gui)和快速应用程序开发(rad)系统,可以轻易的使用dao、rdo、ado连接数据库,或者轻松的创建activex控件。程序员可以轻松的使用vb提供的组件快速建立一个应用程序。2.2 visual basic 特点vb的中心思想就是要便于程序员使用,无论是新手或者专家。vb使用了可以简单建立应用程序的gui系统,但是又可以开发相当复杂的程序。vb的程序是一种基于窗体的可视化组件安排的联合,并且增加代码来指定组件的属性和方法。因为默认的属性和方法已经有一部分定义在了组件内,所以程序员不用写多少代码就可以完成一个简单的程序。过去的版本里面vb程序的性能问题一直被放在了桌面上,但是随着计算机速度的飞速增加,关于性能的争论已经越来越少。窗体控件的增加和改变可以用拖放技术实现。一个排列满控件的工具箱用来显示可用控件(比如文本框或者按钮)。每个控件都有自己的属性和事件。默认的属性值会在控件创建的时候提供,但是程序员也可以进行更改。很多的属性值可以在运行时候随着用户的动作和修改进行改动,这样就形成了一个动态的程序。举个例子来说:窗体的大小改变事件中加入了可以改变控件位置的代码,在运行时候每当用户更改窗口大小,控件也会随之改变位置。在文本框中的文字改变事件中加入相应的代码,程序就能够在文字输入的时候自动翻译或者阻止某些字符的输入。vb的程序可以包含一个或多个窗体,或者是一个主窗体和多个子窗体,类似于操作系统的样子。有很少功能的对话框窗口(比如没有最大化和最小化按钮的窗体)可以用来提供弹出功能。vb的组件既可以拥有用户界面,也可以没有。这样一来服务器端程序就可以处理增加的模块。vb使用参数计算的方法来进行垃圾收集,这个方法中包含有大量的对象,提供基本的面向对象支持。因为越来越多组件的出现,程序员可以选用自己需要的扩展库。和有些语言不一样,vb对大小写不敏感,但是能自动转换关键词到标准的大小写状态,以及强制使得符号表入口的实体的变量名称遵循书写规则。默认情况下字符串的比较是对大小写敏感的,但是可以关闭这个功能。vb使得大量的外界控件有了自己的生存空间。大量的第三方控件针对vb提供。vb也提供了建立、使用和重用这些控件的方法,但是由于语言问题,从一个应用程序创建另外一个并不简单。第三章 软件的功能设计与分析确定课题后,就有进行了一些有必要的调查研究,先了解一下大家在文件命名时是否遇到过麻烦。后来发现有很多人都说有过麻烦,所以我觉得搞出这个软件是有必要的。后来我也上网查了查是否已经有些类软件公开使用了,虽然已经有了,但是发现其功能使用上还是不能很好的支持更多用户面临的命名难题。所以首先对软件的功能进行设计和分析。3.1 本软件应该具有哪些功能目录导入:此项功能应该说是必须有的,用户有大批量文件要重命名时,些功能将让使用者方便快捷的导入所有要命名的文件。文件列表:用户在导入文件后应该能看到导入了哪些文件,而且也方便之后的批量文件名的记录和修改等等。列表排序:大多数用户在批量命名时都会选择中文或者阿拉拍数据排序,那我们应该首先把列表排序,然后再让用户选择用什么数字排序。命名规则:既然是批量重命名,那肯定是在一定规则或者规律进行命名的。比如都改写文件名中的第x个字符为别的,或者在第x个字符加入x个随机字符或数字等等,这个功能也是这个软件的核心功能,应该尽量的去考虑大家在批量命名中遇到的各类情况,并制订出相应的命名规则。结果预览:用户排好序,也制定好命名规则后,我们应该提供这个功能,让用户先看一下按些方法命名后的结果是什么样子的,这样让用户可以再次修改规则等等。执行返回:用户在排序的时候不小心弄错了,那我们应该提供一个执行返回的功能,让那一批文件名恢复没有修改以前的名字。3.2 这些功能实现分析目录导入:此功能可以用vb的drive和dirlistbox两个控件简单的实现用户选择盘符和和具体目录。文件列表:在上一步之后可以得到目录的返回值,然后用库函数dir可以遍历出返回出目标目录下的所有文件或指定格式文件的名字,并把文件名记录到list或者text框里。我设计的方案是用的text框,主要是方便用户修改,而且可以滚动等也方便。列表排序:用户在看到文件列表后,会选择或者设计文件的排序规则,如按修改时间、按创建时间、按大小、按第n个数字排序等等。命名规则:这里就可以说明为什么我在文件列表时采用text控件了,因为用户在选择或者制订规则的时候,text控件可以随便的改变修改后的状态,而且最后用户也可以更方便的修改少数另外的文件名。结果预览:其实用户在排序和命名规则制订的过程中已经可以随便的看到改变后的结果了。但还提供一个功能,也就是给用户展示最开始状态的功能。一方面用户可以看看哪些文件被改名了,一方面也方便下一功能即执行返回的功能。执行返回:因为如上一点说的,有一个展示最开始文件名字状态的功能,那功能很明显已经记录了最开始时文件的命名状况。那我们就可以用执行返回的功能直接调用那里的状态进行命名就实现了此功能了。3.3 软件的操作流程图用户选择目录命名规则手动更改排序规则结果预览执行返回批量命名成功第四章 软件功能的详细设计4.1 目录导入用户在想要批命名软件的时候,都会把要命名的文件放到一个文件夹里面,这时候我们软件一开始肯定是需要用户指导需要批量命名的目录的。而vb6.自带了控件drive和dirlistbox,其中drive中用户选择电脑上具体哪个盘符用的,而dirlistbox控件可以要把drive选择的盘符显示出盘符里面的文件信息。此时我们再加上一个文件框,用于显示dirlistbox选择文件夹里面的文件情况。此时我们加上以下代码后,我们的软件就可以实现目录导入的功能。private sub drive1_change()dir1.path = drive1.driveend sub通过这一步,我们的文件目录导入功能已经顺利实现。4.2 文件列表当用户选择好盘符和文件夹的时候,我们软件就应该显示出文件夹里的文件列表。此处我们没有用大家经常使用的listbox,而是采用了文本框text来存放文件名的,具体的原因在之前软件的功能设计说明已经解释。其具体的实现代码如下页所示:private sub dir1_change() dim arr() as string, i as long, temx as string if treesearch(dir1.path, *.*, arr) = 0 then: text2.text = 空: exit sub for i = 1 to ubound(arr) arr1 = split(arr(i), ) temx = temx & arr1(ubound(arr1) & vbcrlf xgfile(i) = arr(i) next text2.text = temxend sub其中灰色部分的功能就是把从dirlistbox中读出的文件名信息一排一排输出到文本框text2,这样文本框里面一排就是一个文件名。此时我们的功能列表显示功能也已经可以顺利实现。4.3 列表排序关于文件排序,主要是要先想好,用户在批量命名的时候常常需要什么样的排序方法处理文件名。在寻问一些同学和在指导老师的讨论之后,主要加入了以下排序方法即排序规则。 我们要实现在目标是在用户选择任何一个文件排序之后,文本框text2内的列表也会即时的显示出最新的排序状态。列表排序的部分代码如下:(1)文件大小排序:for i = 1 to filesset f = fs.getfile(xgfile(i)for k = i + 1 to files set f2 = fs.getfile(xgfile(k) if f.size - f2.size 0 then temp = xgfile(i):xgfile(i) = xgfile(k):xgfile(k) = temp set f = fs.getfile(xgfile(i) end ifnextarr1 = split(xgfile(i), )temx = temx & arr1(ubound(arr1) & vbcrlfnexttext2.text = temx(2)随机排序:dim k as doublefor i = 1 to files randomize这里是增加随机种子 k = int(rnd * files)其中rnd就是由随机种子产生的随机数 if k = 0 then: k = 1 temp = xgfile(k + 1) xgfile(k + 1) = xgfile(k) gfile(k) = tempnexttemx2 = for i = 1 to files temx2 = temx2 & xgfile(i) & vbcrlf arr1 = split(xgfile(i), ) temx = temx & arr1(ubound(arr1) & vbcrlfnexttext2.text = temx(3)倒序排列:for i = 1 to files 2 为退一除法 temp = xgfile(i) xgfile(i) = xgfile(files + 1 - i) xgfile(files + 1 - i) = tempnexttemx2 = for i = 1 to files temx2 = temx2 & xgfile(i) & vbcrlf arr1 = split(xgfile(i), ) temx = temx & arr1(ubound(arr1) & vbcrlfnexttext2.text = temx(4)第n个数字排序:dim temp2 as integerdim tem_mz(1000) as stringtemx2 = temp2 = cint(text3.text)获取是第n个数字for i = 1 to filesarr1 = split(xgfile(i), )tem_mz(i) = arr1(ubound(arr1)nextfor i = 1 to filesfor k = i + 1 to files as1 = asc(mid(tem_mz(i), temp2, num_num(tem_mz(i), temp2) as2 = asc(mid(tem_mz(k), temp2, num_num(tem_mz(k), temp2) if as1 47 and as1 47 and as2 0 thentemp = xgfile(i) xgfile(i) = xgfile(k) xgfile(k) = temp end if end ifnextarr1 = split(xgfile(i), )temx = temx & arr1(ubound(arr1) & vbcrlfnexttext2.text = temx(5)创建时间排序:temx2 = set fs = createobject(scripting.filesystemobject)fanhui = text2.textfor i = 1 to filesset f = fs.getfile(xgfile(i)for k = i + 1 to files set f2 = fs.getfile(xgfile(k) if (datediff(s, f.datecreated, f2.datecreated) 0 then temp = xgfile(i) xgfile(i) = xgfile(k) xgfile(k) = temp set f = fs.getfile(xgfile(i) end ifnexttemx2 = temx2 & xgfile(i) & vbcrlfarr1 = split(xgfile(i), )temx = temx & arr1(ubound(arr1) & vbcrlfnexttext2.text = temx此处就只例出了上面几种排序代码的核心代码,其实所有排序方法的实现原理都是大同小异的。大多都是用的大家最容易想到也是最容易理解的冒泡排序法,在获取了文件的创建日期,或者大小后就可以将其排序,但最后用fornext语句把排好序的文件名输出到文本框text2中。所有排序都处理好之后,我们的排序功能也测试很多次正常后顺利实现。此时我们即将进入一个本程序最重要的部分,即命名规则。当然,此处为了word的排版更加清晰,我已经把对用户输入是否正确或者符合限制和检查的功能代码给删除了。4.4 命名规则命名规则,这个功能是软件中最重要也是最核心的部分。在命名规则的设计上在老师和同学的帮助和讨论下,最终设计了如下图的规则设计。规则设计中虽然种类不是太多,但是在和指导老师和同学的讨论过程中我们已经尝试过想批量命名各类方法。有的命名虽然不能一步解决,但是可以通过我们最终设计的规则经过两步或者多步实现其最终的目标命名方式。此时由图可以看出,软件的最终界面也已经设计完成,整体感觉还是比较清晰的。话说命名规则其实就是对文本框text2里面每一排的文件进行排序的工作,这里其实就是用len,instr,mid,left,right,replace,等这类函数对文本框text2里面的文本进行修改和操作。len函数用来是返回用户指定字符串的长度的函数,主要是用来对字符串进行定位操作的。而第二个函数instr主要是用来在指定字符串中寻找用户所设定的字符,并返回设定字符在指定字符串出现的位置。mid主要是用来截取指定字符串其中所设定的一段代码。left也是用来截取指定字符串中的字符,但是这个函数是返回的是指定字符串中左边起的多个字符。right大家也应该能猜到了,和letf刚好对立,是返回指定字符串右边数起的多个字符。最后一个replace顾名思义,就是把用户指定字符串里的一字符替换为用户所设定的新字符。通过上面对几个函数的简解,应该可以感觉到通过上面几个函数我们已经可以对文本框text2里的字符进行我们几乎想操作的任何方式了。而且right和left显得还有点多余,因为我们完全可以通过mid来实现,但为了方便我们仍然采用子这两个常用的函数。(1):修第text4.txt个字符开始的text5.txt个字符为xxxx下面我们对其中一些排序规则进行简要的说明吧。首先说第一个,规则:看到这个命名规则,我们肯定想到得使用len函数定位操作。这个规则的实现代码如下:(三个文本框从左到右依次是:text4,text5,text9)temx = a = split(text2.text, vbcrlf)for i = 0 to ubound(a) - 1if len(a(i) text4.text - 1 and len(a(i) text5.text - 1 thena(i) = left(a(i), text4.text - 1) & text9.text & right(a(i), len(a(i) - text5.text - text4.text + 1)end iftemx = temx & a(i) & vbcrlfnexttext2.text = temx代码确实很短,但是确已经实现了我们需要的功能。当然,此处为了word的排版更加清晰,我也已经把对用户输入限制和检查的功能代码给删除了。(2):文件名中的text10.txt字符修改为text11.txt字符因为第二个规则和第一个规则有许多类似之处,此处就不再贴出。第三个规则如下:(两个文本框从左到右依次是:text10,text11)这个规则很简单,因为我们发现这正好不是replace函数的功能吗,下面将贴出具体实现功能的代码吧。if len(text11.text) 0 or len(text10.text) 1 thenmsgbox 把什么修改成什么?说清楚撒option10.value = falseexit subend iftemx = text2.text = replace(text2.text, text10.text, text11.text, , , vbbinarycompare)(3):文件名中的text12.txt字符修改为text12.txt个随机字符上文本为的灰色部分就是软件其中一个对用户输入信息进行判定是否符合要求的代码。要满足符合正确要求的条件下才可以继续进行命名规则的制定。下面我们看到下一个命名规则如下:(两个文本框从左到右依次是:text12,text14)这个规则和第一规则不同之后就是修改的内容,所以只替换一句话就可以了replace(text2.text, text10.text, text11.text, , , vbbinarycompare)替换为:replace(text2.text, text12.text, text14.text个随机字符, , ,vbbinarycompare)问就是怎么实现那儿是随机字符呢,最后我写了个make_num(n)函数,用来生成随便的n个字符串。函数代码如下:public function make_num(num as integer) as stringfor i = 1 to numrandomizeif rnd 0.5 then make_num = make_num & chr(rnd * 27 + 65)else make_num = make_num & chr(rnd * 27 + 97)end ifnextend function所以我们最后可以替换为:replace(text2.text, text12.text, make_num(text14.text), , 1, vbbinarycompare)每次循环就会产生一个text14.text个数的随机字母了,用rnd表示随机数,但用chr(number)把所得的随机数转码为字母即可,即对应的ascii值。(4):将阿拉伯数字全改为小写中文其实也就是把将阿拉伯数字替换为小写中文,肯定用replace是最快的了。以下是实现代码:text2.text = sz_zw(text2.text)对,只有一条语句。而具体的代码在函数sz_zw里,这个函数的功能就是将阿拉伯数字全改为小写中文。代码如下:public function sz_zw(str as string) as stringstr = replace(str, 1, )str = replace(str, 2, 一)str = replace(str, 3, 二)str = replace(str, 4, 三)str = replace(str, 5, 四)str = replace(str, 6, 五)str = replace(str, 7, 六)str = replace(str, 8, 七)str = replace(str, 9, 八)str = replace(str, 0, 九)sz_zw = strend function这个函数应该不用解释了,很简单的,而且这个函数小小的改一下就可以实现下面的将小写中文全改为阿拉伯数字、将小写中文全改为大写中文、将大写中文全改为小写中文,几个功能了,所以呆会儿这几个功能的代码就省略吧,都大同小异的。(5):大小写字母修改(互变,变小,变大)文件名的大小写改变,肯定要很互变,然后再变大或者变小功能,不然互变功能就失效了。下面将贴出源代码:temx = text2.textif flag 21 and flag 22 then flag = 21 temx = zimuhuhuan(temx)elseif flag = 21 then flag = 22 temx = lcase(temx)else flag = 1 temx = ucase(temx)end iftext2.text = temx其中lcase和ucase分别是把字符转换成小写和大写后再返回出字符。而zimuhuhuan这个函数就是我自己写的一个大小写互换的函数了。而至于flag=21之类的主要是让用户能够循环点执行不同的转换方式。以下是zimuhuhuan的函数代码:public function zimuhuhuan(str as string) as stringfor i = 1 to len(str)if asc(mid(str, i, 1) 64 and asc(mid(str, i, 1) 96 and asc(mid(str, i, 1) 123 then temp = ucase(mid(str, i, 1)else temp = mid(str, i, 1)end ifte2 = te2 & tempnextzimuhuhuan = te2end function大小写的转换是先检查字符的ascii码来判定是否是大写还是小写字母,然后再执行相应的转换任务,直到转换完所以的字符为止,但返回出最后转换后的字符串。(6)将文件名前面依次加上1,2,3,4,5,6.如上面红字所说明的,主要是我们在使用的过程中进行边续执行命名规则时需要防止文件重名的情况。这个命名规则实现也很简单,有几段代码,具体代码如下:temx = a = split(text2.text, vbcrlf)for i = 0 to ubound(a) - 1 a(i) = i + 1 & a(i) temx = temx & a(i) & vbcrlfnexttext2.text = temx应该很容易看懂的,些处不解释了,下面我们看一下最后一个命名规则吧。(7)依次把字符串text13.txt修改为text1.txt, text1.txt+1if len(text13.text) 1 or isnumeric(text1.text) = false thenmsgbox 请先填好修改的字符串和起始数字option19.value = falseexit subend if temx = a = split(text2.text, vbcrlf)fanhui = text2.textfor i = 0 to ubound(a) - 1 a(i) = replace(a(i), text13.text, text1.text + i) temx = temx & a(i) & vbcrlfnexttext2.text = temx字符串关于修改一次都很常用replace函数的,这里也不例外,简单几句代码,已经达到了我们需要的目的,而且还对用户输入是否满足要求进行了检测和判定。4.5 结果预览现在我们软件基本就只有图中圈着的部分没有说明了,结果预览也就是查看对应的文件位置功能,我们的目标是当用户点击这个按钮时应该让用户知道最后如果他执行确定命名之后文件改掉的情况。所以我就弹出一个框并告诉用户哪里的文件被对应的改到哪为什么名字了。如下图:当用户想要结果预览的时候,就会弹出个框并且显示出文件的地址和对应的新名字。这时我们肯定就必须在排序的时候就要记录好排序后对应的文件地址的新顺序。如我们可以把之前的倒序排列函数改为如下代码: for i = 1 to files 2 为退一除法 temp = xgfile(i) xgfile(i) = xgfile(files + 1 - i) xgfile(files + 1 - i) = tempnexttemx2 = for i = 1 to files temx2 = temx2 & xgfile(i) & vbcrlf arr1 = split(xgfile(i), ) temx = temx & arr1(ubound(arr1) & vbcrlfnexts_file = temx其中s_file就是记录的新的文件地址信息。text2.text = temxs_file只有在排序的时候改变,因为用户在命名规则设定的时候,并不没有改变文件的顺序的,所以文件地址对应的文件名是没有变化的。我们只需要在每一个排序函数的后面加上s_file = temx就可以实现更新文件名和文件地址的正确对应了,temx是由temx = temx & arr1(ubound(arr1) & vbcrlf得来就是累加的文件地址总集。4.6 执行返回这个功能,就是要在用户经过无论多少次命名操作后都可以返回最初的文件名的操作。我们可以定义一个全局的参数zuichu_m。我们的目标是让最后的列表地址里对应我们zuichu_m里的每一个文件名,也就是说zuichu_m应该是在用户使用命名规则确实点成为最张记录,也就是说在用户不再改变文件地址列表的序列的时候,我们就记录当时所对应的文件名的序列位置。那我们又可以和之前的s_file一样,在每个排序函数的后面加上zuichu_m = temx。这里的temx其实就是当时点了排序后的text2.txt是等价的,其实这就是最初的文件名了。当然此处仅仅是这样还是不够的,我们还得进行一些判定,比如用户如果点了命名用再点排序,那最初的文件名就会改变,所以我引入了一个全局变flag2来看文件名是否改过,如果文件名改这了之后再点排序产生的temx就不会被记录到最初文件名s_file中。则:if flag2=1 then:s_file=temx而在点命名的时候加上flag=2即可。本功能代码其实就只有一句了:text2.text = zuichu_m4.7 确认命名用户排好序也制定好了规则看到了结果,但最后肯定就是确认命名了。代码如下所示:dim s as string: s = |?!:/*可以随便增加不能命名的字符for i = 1 to len(s)if instr(text2.text, mid(s, i, 1) 0 thenmsgbox 文件名列表中含有不能命名的字符如: & vbcrlf & sexit subend ifnexta = split(text2.text, vbcrlf)for i = 0 to ubound(a) - 1if instr(instr(text2.text, vbcrlf & a(i) & vbcrlf) + 1, text2.text, vbcrlf

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论