第9章VB NET文件操作
- 格式:ppt
- 大小:128.50 KB
- 文档页数:33
教程 - 正则表达式正则表达式是可以与输入文本匹配的模式。
.Net框架提供了允许这种匹配的正则表达式引擎。
模式由一个或多个字符文字,运算符或构造组成。
定义正则表达式的构造有各种类别的字符,运算符和构造,允许您定义正则表达式。
单击以下链接以查找这些结构。
•字符转义••字符类••锚••分组构造••量词••反向引用结构••交替结构••替换••杂项结构正则表达式类正则表达式类用于表示一个正则表达式。
正则表达式类有以下常用方法:SN 方法和说明1 Public Function IsMatch (input As String) As Boolean公共函数IsMatch(输入作为字符串)作为布尔表示在正则表达式构造函数中指定的正则表达式是否发现在指定的输入字符串匹配。
2 Public Function IsMatch (input As String, startat As Integer ) As Boolean公共函数IsMatch(输入作为字符串,startat作为整数)作为布尔指示在Regex构造函数中指定的正则表达式是否在指定的输入字符串中找到匹配项,从字符串中指定的起始位置开始。
3 Public Shared Function IsMatch (input As String, pattern As String ) As Boolean公共共享函数IsMatch(输入作为字符串,图案作为字符串)作为布尔指示指定的正则表达式是否在指定的输入字符串中找到匹配项。
4 Public Function Matches (input As String) As MatchCollection 公共函数匹配(输入作为字符串)作为MatchCollection搜索指定的输入字符串以查找正则表达式的所有出现。
5 Public Function Replace (input As String, replacement As String) As String公共函数替换(输入作为字符串,更换作为字符串)作为字符串在指定的输入字符串中,使用指定的替换字符串替换与正则表达式模式匹配的所有字符串。
[]文件操作文件操作实例说明在本实例中,我们制作一个能够对文件进行操作的应用程序。
程序运行后,可以新建一个文件和删除一个文件;同时可以显示文件的属性如文件类型、建立时间、更改时间和访问时间等。
还可以更改这些属性。
程序运行结果如图89-1所示。
图89-1 运行结果<script type="text/javascript" src="/pagead/show_ads.js"> </script>技术要点l 新建和删除文件l 获得文件属性l 更改文件属性实现过程■ 新建项目打开Visual ,选择"新建项目",在项目类型窗口中选择"Visual Basic项目",在模板窗口中选择"Windows应用程序",在名称域中输入"FileOperate",然后选择保存路径。
单击"确认"。
■ 添加控件在窗体上添加六个Button控件,一个GroupBox控件,并在GroupBox控件上放置八个Label控件。
■ 更改属性将说明性的Label控件和Button控件的Text属性设置为和界面一致。
其余属性保持不变。
■ 添加代码Dim fileexam As System.IO.File'新建文件Private Sub Button1_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button1.ClickIf fileexam.Exists("c:/abc.txt") = True ThenMsgBox("这个文件已经存在了!")Exit SubEnd Iffileexam.Create("c:/abc.txt")MsgBox("成功建立文件!")Button3.Enabled = TrueEnd Sub'删除文件Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.ClickIf fileexam.Exists("c:/abc.txt") = True Thenfileexam.Delete("c:/abc.txt")MsgBox("成功删除文件!")Button3.Enabled = FalseElseMsgBox("这个文件不存在")End IfEnd Sub'得到文件的相关信息Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.ClickLabel1.Text = fileexam.GetAttributes("c:/abc.txt").ToStringLabel2.Text = fileexam.GetCreationTime("c:/abc.txt").ToStringLabel3.Text = fileexam.GetLastWriteTime("c:/abc.txt").ToStringLabel4.Text = fileexam.GetLastAccessTime("c:/abc.txt").ToStringEnd Sub'更改文件的属性(只读、隐藏、系统或文档)Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Clickfileexam.SetAttributes("c:/abc.txt",IO.FileAttributes.ReadOnly)End Sub'更改文件的建立时间Private Sub Button6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button6.Clickfileexam.SetCreationTime("c:/abc.txt", Now)End Sub'更改最后访问时间Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Clickfileexam.SetLastAccessTime("c:/abc.txt", Now)End Sub■ 运行程序单击菜单"调试|启动"或单击图标运行程序。
教程 - 字符串在中,可以使用字符串作为字符数组,但是更常见的做法是使用String关键字声明一个字符串变量。
string关键字是System.String类的别名。
创建一个字符串对象您可以使用以下方法之一创建字符串对象:•By assigning a string literal to a String variable 通过指定一个字符串给一个字符串变量••By using a String class constructor 通过使用String类构造函数••By using the string concatenation operator (+) 通过使用字符串连接运算符(+)••By retrieving a property or calling a method that returns a string 通过检索属性或调用返回字符串的方法••By calling a formatting method to convert a value or object to its string representation•通过调用格式化方法将值或对象转换为其字符串表示形式下面的例子说明了这一点:1.Module strings2.Sub Main()3.Dim fname, lname, fullname, greetings As String4.fname = 'Rowan'5.lname = 'Atkinson'6.fullname = fname + ' ' + lname7.Console.WriteLine('Full Name: {0}', fullname)8.9.'by using string constructor10.Dim letters As Char() = {'H', 'e', 'l', 'l', 'o'}11.greetings = New String(letters)12.Console.WriteLine('Greetings: {0}', greetings)13.14.'methods returning String15.Dim sarray() As String = {'Hello', 'From', 'Tutorials', 'Point'}16.Dim message As String = String.Join(' ', sarray)17.Console.WriteLine('Message: {0}', message)18.19.'formatting method to convert a value20.Dim waiting As DateTime = New DateTime(2012, 12, 12, 17, 58, 1)21.Dim chat As String = String.Format('Message sent at {0:t} on {0:D}', waiting)22.Console.WriteLine('Message: {0}', chat)23.Console.ReadLine()24.End Sub25.End Module当上述代码被编译和执行时,它产生了以下结果:1.Full Name: Rowan Atkinson2.Greetings: Hello3.Message: Hello From Tutorials Point4.Message: Message sent at 5:58 PM on Wednesday, December 12, 2012String类的属性String类有以下两个属性:SN 属性名称和说明1Chars获取当前String对象中指定位置的Char对象。
vbnet教程 是一种由微软开发的面向对象的编程语言,用于开发应用程序和网站。
本教程旨在帮助初学者了解 的基本概念和语法。
以下是一些重要的主题。
变量和数据类型在 中,您可以使用变量来存储数据。
变量需要一个数据类型来确定可以存储的值的范围。
常见的数据类型包括整数、浮点数、字符串和布尔值。
您可以使用关键字 Dim 来声明变量。
条件语句条件语句用于根据给定的条件执行不同的操作。
在 中,您可以使用 If-Then、If-Then-Else 和 Switch 语句来实现条件逻辑。
循环循环语句用于重复执行特定的代码块。
提供了几种类型的循环,包括 For 循环、While 循环和 Do-While 循环。
这些循环结构可以根据特定的条件来控制循环的次数。
数组数组是一种用于存储多个相同类型的值的数据结构。
在 中,您可以使用关键字 Dim 来声明数组,并使用索引访问数组元素。
函数和过程函数和过程是可重用的代码块。
函数返回一个值,而过程不返回任何值。
您可以使用关键字 Function 和 Sub 来定义函数和过程,并使用关键字 Return 和 Exit Sub 来返回值。
面向对象编程 是一种面向对象的编程语言,支持封装、继承和多态。
您可以使用类来创建对象,使用属性和方法来访问和操作对象的状态和行为。
异常处理异常处理用于捕获和处理程序中可能出现的错误。
在 中,您可以使用 Try-Catch-Finally 块来捕获和处理异常。
文件操作 提供了许多用于读取和写入文件的功能。
您可以使用关键字 File 和 Directory 来操作文件和目录。
以上是一些 的基本概念和语法。
通过学习这些内容,您将能够开始编写简单的 程序。
希望本教程对您有所帮助!。
这一部分,你将找到更多常用的文件操作的代码实例。
最常用、最基本的操作就是把text写入文件和读回来。
现在的应用程序通常不用二进制文件作存储简单的变量,而用它来存储对象,对象集合以及其他机器代码。
下面,将看到具体操作的例子。
读写文本文件为了把text保存到文件,创建一个基于FileStream的StreamReader对象,然后调用Write方法把需要保存的text写入文件。
下面的代码用SaveFileDialog 提示用户指定一个文件,用于保存TextBox1的内容。
同样采用类似的语句,我们读取一个文本文件,并把内容显示在TextBox控件中。
StreamReader的ReadToEnd方法返回文件的全部内容。
各种对象的存储采用BinaryFormatte以二进制的形式,或者用SoapFormatter类以XML格式都可以序列化一个具体的对象。
只要把所有BinaryFormatter的引用改为SoapFormatter,无需改变任何代码,就可以以XML格式序列化对象。
首先创建一个BinaryFormatter实例:然后创建一个用于存储序列化对象的FileStream对象:接着调用BinFormatter的Serialize方法序列化任何可以序列化的framework 对象:加一个Serializable属性使得自定义的对象可以序列化下面代码创建一个Person对象实例,然后调用BinFormatter的Serialize方法序列化自定义对象:你也可以在同一个Stream中接着序列化其他对象,然后以同样的顺序读回。
例如,在序列化Person对象之后接着序列化一个Rectangle对象:创建一个BinaryFormatter对象,调用其Deserialize方法,然后把返回的值转化为正确的类型,就是整个反序列化过程。
然后接着发序列化Stream的其他对象。
假定已经序列化了Person和Rectangle两个对象,以同样的顺序,我们反序列化就可以得到原来的对象:大多数程序处理对象集合而不是单个的对象。
是一种基于VB语言的面向对象程序设计语言,它是微软推出的一种用于开发Windows评台应用程序的工具。
在中,文件的读写是非常常见的操作,我们可以通过一些API来实现文件的读写操作。
在本文中,我将介绍如何在中进行文件的读写操作,包括文件的打开、读取、写入和关闭等操作。
希望通过本文的介绍,能够帮助大家更好地掌握中文件读写的用法。
一、文件的打开在中,我们可以使用FileStream类来打开一个文件。
FileStream类是用于提供文件的读写操作的一个类,通过它我们可以打开一个文件,并进行读写操作。
下面是一个打开文件的示例代码:Dim fs As FileStream = New FileStream("C:\test.txt", FileMode.Open)在上面的代码中,我们首先创建了一个FileStream对象,并以"test.txt"为文件名,以FileMode.Open的方式来打开了这个文件。
通过这个代码,我们就可以在中打开一个文件了。
二、文件的读取在中,我们可以使用StreamReader类来进行文件的读取操作。
StreamReader类是用于读取文件内容的一个类,通过它我们可以方便地读取文件的内容。
下面是一个读取文件的示例代码:Dim sr As StreamReader = New StreamReader("C:\test.txt")Dim content As Stringcontent = sr.ReadToEnd()Console.WriteLine(content)在上面的代码中,我们首先创建了一个StreamReader对象,并以"test.txt"为文件名来创建了这个对象。
然后我们通过sr.ReadToEnd()方法来将整个文件的内容读取到content变量中,并最后将content的内容输出到控制台上。
调用过程步骤详解•调用过程步骤详解调用过程在这篇文章中被分为三个步骤为大家详细介绍。
希望大家可以通过这三个步骤的介绍,充分掌握这一工程的实现的技巧。
调用过程的应用,是一个比较基础的操作技巧。
作为初学者来说,我们需要在学习的过程中不断的从实际操作中去积累经验,来巩固我们所掌握的书面知识。
首先让我们一起来看看调用过程的实现,以此来初步掌握这一语言的应用技巧。
调用过程一、调用Sub过程与Function过程不同,在表达式中,Sub过程不能用其名字调用,调用Sub过程的是一个独立的语句。
Sub过程还有一点与函数不同,它不会用名字返回一个值。
但是,与Function过程一样,Sub过程也可以修改传递给它们的任何变量的值。
调用Sub过程有两种方法:1.'以下两个语句都调用了名为2.MyProc的Sub过程。
3.4.Call MyProc(FirstArgument,5.SecondArgument)6.7.MyProc(FirstArgument,8.SecondArgument)调用过程二、调用函数过程通常,调用自行编写的函数过程的方法和调用Visual Basic内部函数过程(例如Abs)的方法一样:即在表达式中写上它的名字。
下面的语句都调用函数MyFunc:1.TextBox1.Text=2.CStr(10*MyFunc)3.4.X=MyFunc()就象调用Sub过程那样,也能调用函数。
下面的语句都调用同一个函数:1.Call Year(Now)2.3.Year(Now)当用这种方法调用函数时,Visual Basic放弃返回值。
调用过程三、调用其他模块中的过程在工程中的任何地方都能调用类模块或标准模块中的公用过程。
可能需要指定这样的模块,它包含正在调用的过程。
调用其他模块中的过程的各种技巧,取决于该过程是在类模块中还是在标准模块中。
在类模块中调用过程要求调用与过程一致并且指向类实例的变量。
例如,DemoClass是类Class1的实例:1.Dim DemoClass As2.New Class13.4.DemoClass.SomeSub在引用一个类的实例时,不能用类名作限定符。
VB INET控件的全部用法(详细讲解)使用 Internet Transfer 控件Internet Transfer 控件实现了两种广泛使用的 Internet 协议: 超文本传送协议(HyperText Transfer Protocol)(HTTP) 和文件传送协议(File Transfer Protocol) (FTP)。
使用 Internet Transfer 控件可以通过 OpenURL 或 Execute 方法连接到任何使用这两个协议的站点并检索文件。
可能的用途在应用程序中添加 FTP 浏览器。
创建自动从公共 FTP 站点下载文件的应用程序。
分析 World Wide Web 站点中的图形引用,并只下载图形。
提供以自定义格式显示从 Web 页获得的动态数据。
基本操作Internet Transfer 控件的功能依赖于将要使用的协议。
由于所支持的两种协议工作起来不尽相同,所能够进行的操作就依赖于正在使用的协议。
例如,GetHeader 方法只能用于 HTTP(HTML 文档)协议。
然而,有些过程对两个协议是通用的。
最基本的,如果要使用任何一个协议,则必须:将 AccessType 属性设置为合法的代理服务器。
用合法的 URL 调用 OpenURL 方法。
用合法的 URL 和协议支持的命令调用 Execute 方法。
用 GetChunk 方法从缓冲区获取数据。
设置 AccessType 属性:使用代理服务器为了与 Internet 建立任何形式的连接,必须确定计算机如何连接到 Internet 上。
如果在 intranet 上,可能需要提供代理服务器才能连接到 Internet 上。
简单地说,代理服务器是计算机和 Internet 之间的媒介。
intranet 上所有需要连接到 Internet 上的计算机,都必须通过代理服务器。
代理行使 intranet 和 Internet 之间的防火墙功能,能够阻止非法的最终用户和外部请求,也就保护了 intranet 不受破坏。
基础教程第一部分 Visual 基础1.vb. net介绍的优点3.新建一个项目4.编写第一个应用程序第二部分 的语法部分的Numeric数据类型的Byte数据类型的String数据类型的Boolean数据类型的Date数据类型的Object数据类型的用户自定义类型的数组定义的数组列表的多维数组类型转换函数第三部分 visual 的运算程序设计时经常用到的有6种运算:算术运算(Arithmetic)、赋值运算(Assignment)、二进制运算(Bitwise)、比较运算(Comparison)、连接运算(concatenation)及逻辑运算(Logical),下面对这6种运算进行简单介绍。
的算术运算的赋值运算符的二进制运算符的比较运算符的连接运算符和逻辑运算符运算符的优先级(一) Visual 的常量和变量的常量的变量(二) Visual 的流程和控制结构条件分支语句的循环语句(三) 的过程和函数的Sub过程的Funtion过程3.在中调用过程4.如何向过程传递参数(四)的类和对象基础第四部分 visual 的常用控件的Label控件的Button控件的Textbox控件的MainMenu控件的Checkbox控件的Radiobutton控件的GroupBox控件的PictureBox控件的ListBox控件的CheckedListBox控件的Combobox控件的ListView控件的TreeView控件的ImageList控件的Timer控件的HScrollBar和VScrollBar控件的ProgressBar控件的ToolBar控件的StatusBar控件20.Vs 2005的ToolStrip控件21.Vs 2005的StatusStrip控件22.Vs 2005的MenuStrip控件第六部分 的OOP结构1.什么是oop的面向对象性的共享成员(Share Members)4.类模块和标准代码模块的区别和比较5.对象浏览器(一)建立和使用对象对象的建立和销毁:对象的生命周期2.设置和重设的属性3.用方法来表现动作对象变量的声明5.对一个对象进行多种操作6.使用New关键字7.如何释放对对象的引用8.如何把对象传递到一个过程(二)在程序运行中得到一个类的信息:用一个字符名称调用一个属性或者方法(三) 中的类、继承与多态性中给一个类添加方法2.命名属性、方法和事件的事件和事件处理4.类的继承(Inheritance)继承的规则6.用继承建立一个继承类7.重载Windows控件8.什么时候使用继承9.什么是命名空间(Namespace)继承的例子中用继承实现多态性中用接口实现多态性第七部分数据库访问技术关于SQL语言的知识,请参考:sql语言教程及Sql语言基础1.数据库基础知识数据集(Datasets)的概念3.什么是dao4.Dao与Jet数据库引擎5.Dao对象模型6.远程数据对象RDO7.Rdo对象模型8.odbc api是什么9.ODBC的结构10.使用ODBC API访问数据库11.ado数据对象12.ado对象模型简介14.使用的基本方法第八部分 的多线程1.自由线程(Free Threading)2.关于线程的参数和返回值的问题的并发性问题第九部分 的文件和出错处理的出错处理的多种出错处理(Multiple Exceptions)的文件对象(file object)文件处理的出错处理5.检测文件的结束(Testing for End of File)6.文件的静态方法(Static File Methods)vb. net介绍是Visual 的简称。
语⾔复制、删除⽂件版Imports System.IOImports System.IO.Directory' ======================================================' 实现⼀个静态⽅法将指定⽂件夹下⾯的所有内容copy到⽬标⽂件夹下⾯' 如果⽬标⽂件夹为只读属性就会报错。
' ======================================================Public Shared Sub CopyDir(ByVal srcPath As String, ByVal aimPath As String)Try' 检查⽬标⽬录是否以⽬录分割字符\结束,如果不是则添加之If aimPath(aimPath.Length - 1) <> Path.DirectorySeparatorChar ThenaimPath += Path.DirectorySeparatorCharEnd If'判断源⽬录是否存在,不存在则退出.If (Not Directory.Exists(srcPath)) Then Exit Sub' 判断⽬标⽬录是否存在如果不存在则新建之If (Not Directory.Exists(aimPath)) Then Directory.CreateDirectory(aimPath)' 得到源⽬录的⽂件列表,该⾥⾯是包含⽂件以及⽬录路径的⼀个数组' 如果你指向copy⽬标⽂件下⾯的⽂件⽽不包含⽬录请使⽤下⾯的⽅法' string[] fileList = Directory.GetFiles(srcPath);Dim fileList() As String = Directory.GetFileSystemEntries(srcPath)' 遍历所有的⽂件和⽬录For Each FileName As String In fileList' 先当作⽬录处理如果存在这个⽬录就递归Copy该⽬录下⾯的⽂件If Directory.Exists(FileName) ThenCopyDir(FileName, aimPath + Path.GetFileName(FileName))' 否则直接Copy⽂件ElseFile.Copy(FileName, aimPath + Path.GetFileName(FileName), True)End IfNextCatch ex As ExceptionMessageBox.Show(ex.ToString())End TryEnd Sub' ======================================================' 实现⼀个静态⽅法将指定⽂件夹下⾯的所有内容Detele' 测试的时候要⼩⼼*作,删除之后⽆法恢复。
⽤(Visual Basic 2010)封装EXCEL VBA为DLL_COM。
为了保护⾃⼰⾟⾟苦苦编写的Excel VBA代码不被盗⽤,我们需要对Excel VBA代码进⾏加密。
通常的做法是利⽤给⼯程设置密码的⽅法实现加密,对于这类加密⽅法,由于存在安全度低、易破解等问题,因此往往起不到应有的效果。
通过将Excel VBA代码封装成DLL动态链接库,可有效防⽌代码被⾮法查看。
在百度⾥搜索“封装EXCEL VBA”关键字,有很多封装VBA的教程,但99%是利⽤VB6(Microsoft Visual Basic 6.0)来封装,主要原因是VB6的操作界⾯及语法与Excel的VBA具有极⾼的相似度。
2002年,随着的引⼊,⼤部分⼈都放弃使⽤VB⽽选择,VB6终将被淘汰,因此我们必须与时俱进,学习⽤Microsoft Visual Basic 2010封装VBA。
我们可以在VS⾥建⽴com类项⽬,把NET类库的⼀些⽅法重新包装后暴露给VBA使⽤。
案例:在⼯作表的C1单元格得出A1单元格+B1单元格的值。
设计的VBA代码:1Sub Test()2On Error Resume Next3 Range("C1").Value = Range("A1").Value + Range("B1").Value4End Sub⼀、使⽤Microsoft Visual Basic 2010制作DLL⽂件⼯具及原料:1、Microsoft Office Excel 20032、Microsoft Visual Studio 20103、Windows XP 32位操作系统操作步骤:1、启动Microsoft Visual Studio 2010,在起始页界⾯点击“新建项⽬”,如图1所⽰。
图12、在弹出的“新建项⽬”对话框选择“类库”,修改名称为“VBADLL”,点击确定,如图2所⽰。
vbnet操作WordPrivate oWordApplic As Word.ApplicationPrivate oDocument As Word.DocumentPrivate oRange As Word.RangePrivate oSelection As Word.SelectionPublic Sub Neword()'激活com word接口oWordApplic = New Word.ApplicationoWordApplic.Visible = TrueEnd Sub'设置选定文本Public Sub SetRange(ByVal para As Integer)oRange = oDocument.Paragraphs(para).RangeoRange.Select()End SubPublic Sub SetRange(ByVal para As Integer, ByVal sent As Integer)oRange = oDocument.Paragraphs(para).Range.Sentences(sent) oRange.Select()End SubPublic Sub SetRange(ByVal startpoint As Integer, ByVal endpoint As Integer, ByVal flag As Boolean)If flag = True ThenoRange = oDocument.Range(startpoint, endpoint)oRange.Select()ElseEnd IfEnd Sub'生成空的新文档Public Sub NewDocument()Dim missing = System.Reflection.Missing.ValueDim isVisible As Boolean = TrueoDocument = oWordApplic.Documents.Add(missing, missing, missing, missing)oDocument.Activate()End Sub'使用模板生成新文档Public Sub NewDocWithModel(ByVal FileName As String)Dim missing = System.Reflection.Missing.ValueDim isVisible As Boolean = TrueDim strName As StringstrName = FileNameoDocument = oWordApplic.Documents.Add(strName, missing, missing, isVisible)oDocument.Activate()End Sub'打开已有文档Public Sub OpenFile(ByVal FileName As String)Dim strName As StringDim isReadOnly As BooleanDim isVisible As BooleanDim missing = System.Reflection.Missing.ValuestrName = FileNameisReadOnly = FalseisVisible = TrueoDocument = oWordApplic.Documents.Open(strName, missing, isReadOnly, missing, missing, missing, missing, missing, missing, missing, missing, isVisible, missing, missing, missing,missing)oDocument.Activate()End SubPublic Sub OpenFile(ByVal FileName As String, ByVal isReadOnly As Boolean) Dim strName As StringDim isVisible As BooleanDim missing = System.Reflection.Missing.ValuestrName = FileNameisVisible = TrueoDocument = oWordApplic.Documents.Open(strName, missing, isReadOnly, missing, missing, missing, missing, missing, missing, missing, missing, isVisible, missing, missing, missing, missing)oDocument.Activate()End Sub'退出WordPublic Sub Quit()Dim missing = System.Reflection.Missing.ValueoWordApplic.Quit()System.Runtime.InteropServices.Marshal.ReleaseComObject (oWordApplic)oWordApplic = NothingEnd Sub'关闭所有打开的文档Public Sub CloseAllDocuments()oWordApplic.Documents.Close(Word.WdSaveOptions.wdD oNotSaveChanges)End Sub'关闭当前的文档Public Sub CloseCurrentDocument()oDocument.Close(Word.WdSaveOptions.wdDoNotSaveCha nges)End Sub'保存当前文档Public Sub Save()TryoDocument.Save()CatchMsgBox(Err.Description)End TryEnd Sub'另存为文档Public Sub SaveAs(ByVal FileName As String)Dim strName As StringDim missing = System.Reflection.Missing.ValuestrName = FileNameoDocument.SaveAs(strName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)End Sub'保存为Html文件Public Sub SaveAsHtml(ByVal FileName As String)Dim missing = System.Reflection.Missing.ValueDim strName As StringstrName = FileNameDim format = CInt(Word.WdSaveFormat.wdFormatHTML)oDocument.SaveAs(strName, format, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)End Sub'插入文本Public Sub InsertText(ByVal text As String)oWordApplic.Selection.TypeText(text)End Sub'插入一个空行Public Sub InsertLineBreak()oWordApplic.Selection.TypeParagraph()End Sub'插入指定行数的空行Public Sub InsertLineBreak(ByVal lines As Integer)Dim i As IntegerFor i = 1 To linesoWordApplic.Selection.TypeParagraph()NextEnd Sub'插入表格Public Sub InsertTable(ByRef table As DataTable)Dim oTable As Word.TableDim rowIndex, colIndex, NumRows, NumColumns As Integer rowIndex = 1colIndex = 0NumRows = table.Rows.Count + 1NumColumns = table.Columns.CountoTable = oDocument.Tables.Add(oWordApplic.Selection.Range(), NumRows, NumColumns)'初始化列Dim Row As DataRowDim Col As DataColumnFor Each Col In table.ColumnscolIndex = colIndex + 1oTable.Cell(1, colIndex).Range.InsertAfter(Col.ColumnName) Next'将行添入表格For Each Row In table.RowsrowIndex = rowIndex + 1colIndex = 0For Each Col In table.ColumnscolIndex = colIndex + 1oTable.Cell(rowIndex,colIndex).Range.InsertAfter(Row(Col.ColumnName)) Next NextoTable.AllowAutoFit = TrueoTable.ApplyStyleFirstColumn = TrueoTable.ApplyStyleHeadingRows = TrueEnd Sub'设置对齐Public Sub SetAlignment(ByVal strType As String)Select Case strTypeCase"center"oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter Case"left"oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft Case"right"oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight Case"justify"oWordApplic.Selection.ParagraphFormat.Alignment =Word.WdParagraphAlignment.wdAlignParagraphJustify End SelectEnd Sub'设置字体Public Sub SetFontStyle(ByVal strFont As String)Select Case strFontCase"bold"oWordApplic.Selection.Font.Bold = 1Case"italic"oWordApplic.Selection.Font.Italic = 1Case"underlined"oWordApplic.Selection.Font.Subscript = 1End SelectEnd Sub'取消字体风格Public Sub DissableStyle()oWordApplic.Selection.Font.Bold = 0oWordApplic.Selection.Font.Italic = 0oWordApplic.Selection.Font.Subscript = 0End Sub'设置字体字号Public Sub SetFontSize(ByVal nSize As Integer)oWordApplic.Selection.Font.Size = nSizeEnd Sub'跳过本页Public Sub InsertPageBreak()Dim pBreak As IntegerpBreak = CInt(Word.WdBreakType.wdPageBreak)oWordApplic.Selection.InsertBreak(pBreak)End Sub'转到书签Public Sub GotoBookMark(ByVal strBookMark As String)Dim missing = System.Reflection.Missing.ValueDim BookMark = CInt(Word.WdGoToItem.wdGoT oBookmark) oWordApplic.Selection.GoT o(BookMark, missing, missing, strBookMark) End Sub'判断书签是否存在Public Function BookMarkExist(ByVal strBookMark As String) As BooleanDim Exist As BooleanExist = oDocument.Bookmarks.Exists(strBookMark)Return ExistEnd Function'转到文档结尾Public Sub GotoTheEnd()Dim missing = System.Reflection.Missing.ValueDim unit = Word.WdUnits.wdStoryoWordApplic.Selection.EndKey(unit, missing)End Sub'转到文档开头Public Sub GotoTheBegining()Dim missing = System.Reflection.Missing.ValueDim unit = Word.WdUnits.wdStoryoWordApplic.Selection.HomeKey(unit, missing)End Sub'转到表格Public Sub GotoTheTable(ByVal ntable As Integer)'Dim missing = System.Reflection.Missing.Value'Dim what = Word.WdGoT oItem.wdGoToTable'Dim which = Word.WdGoT oDirection.wdGoT oFirst'Dim count = ntable'oWordApplic.Selection.GoTo(what, which, count, missing)'oWordApplic.Selection.ClearFormatting()'oWordApplic.Selection.Text = ""oRange = oDocument.Tables(ntable).Cell(1, 1).RangeoRange.Select()End Sub'转到表格的某个单元格Public Sub GotoT ableCell(ByVal ntable As Integer, ByVal nRow As Integer, ByVal nColumn As Integer)oRange = oDocument.Tables(ntable).Cell(nRow, nColumn).RangeoRange.Select()End Sub'表格中转到右面的单元格Public Sub GotoRightCell()Dim missing = System.Reflection.Missing.ValueDim direction = Word.WdUnits.wdCelloWordApplic.Selection.MoveRight(direction, missing, missing) End Sub'表格中转到左面的单元格Public Sub GotoLeftCell()Dim missing = System.Reflection.Missing.ValueDim direction = Word.WdUnits.wdCelloWordApplic.Selection.MoveLeft(direction, missing, missing) End Sub'表格中转到下面的单元格Public Sub GotoDownCell()Dim missing = System.Reflection.Missing.ValueDim direction = Word.WdUnits.wdCelloWordApplic.Selection.MoveDown(direction, missing, missing)End Sub'表格中转到上面的单元格Public Sub GotoUpCell()Dim missing = System.Reflection.Missing.ValueDim direction = Word.WdUnits.wdCelloWordApplic.Selection.MoveUp(direction, missing, missing) End Sub'插入图片Public Sub InsertPic(ByVal FileName As String)Dim missing = System.Reflection.Missing.ValueoWordApplic.Selection.InlineShapes.AddPicture(FileName, False, True, missing) End Sub。
嵌入文件操作技巧分享•嵌入文件操作技巧分享嵌入文件的应用在实际代码编写中是非常常见的一个操作。
不过对初学者来说还是有些难以掌握的。
下面我们就为大家详细介绍下其中概念,方便大家理解。
嵌入文件的应用方式有很多种。
大家可以根据开发中的不同需求来进行选择应用。
下面我们就会对这一应用方式进行一个详细的解读,方便大家理解,提高大家的编程效率。
o 动态标识符体现动态语言特性o简单实现打开Notes数据库o Dllimport特性内容概述o 资源文件应用经验总结o深入分析 FieldOffset特性在文件中嵌入文件,一般都是通过资源文件来实现的,至于具体的实现步骤,我想就不用我罗嗦了,网上有很多这样的文章,不清楚的朋友可以自己搜索一下。
但是有些情况下,用资源文件无法解决问题,就不得不迂回一下,比如要实现所谓的绿色软件(在这里我要说明的是,这篇文章没有涉及任何高级技巧,因此,您略过不看,我也不会感到难过),事实上,大家知道,VB程序的运行需要VB运行库的支持,所以,用VB做绿色软件几乎是不可能的事。
幸运的是,某些版本的window预装了VB的运行库支持文件,为不可能变为可能,提供了机会。
然而,一旦我们使用了第3方控件或在其他类似情况下,这种实现绿色软件的可能就微乎其微了,怎么办?如果用资源文件就称不上绿色软件了,那么,是不是就意味着我们必须放弃这种诱人的想法呢?别着急,往下看就知道应该如何去做了。
:)我的答案是直接以代码的形式,将嵌入文件应用到到我们的VB程序中,下面我假设您已经知道了如何用api函数注册控件(当然在程序中调用regsvr32也可),知道了如何读写文件和注册表,这些问题和本问题息息相关,您有必要知道,如果不知道也不要紧,可以通过搜索引擎获取答案。
具体的实现步骤是:首先在程序加载时根据注册表中的键值,判断是否是第一次运行,如果是第一次运行,则将在您指定的路径生成需要的文件并写入数据,然后,调用api函数注册控件,同时,写注册表,标记已运行过本程序。