《Visual Basic程序设计》课件项目十_第1页
《Visual Basic程序设计》课件项目十_第2页
《Visual Basic程序设计》课件项目十_第3页
《Visual Basic程序设计》课件项目十_第4页
《Visual Basic程序设计》课件项目十_第5页
已阅读5页,还剩111页未读 继续免费阅读

下载本文档

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

文档简介

项目十文件、驱动器和文件夹任务10.1文件系统控件任务10.2文件系统对象任务10.3传统的文件I/O语句和函数

任务10.1文件系统控件

任务导入

计算机的文件系统包括用户建立的数据文件和系统软件及应用软件中的文件。为了管理计算机中的文件,VB提供了文件系统控件。文件系统控件的作用是显示出关于驱动器、目录和文件的信息,并从中进行选择,以便执行进一步的操作。通过使用DriveListBox(驱动器列表框)、DirListBox(目录列表框)和FileListBox(文件列表框)三种控件的组合,可以创建自定义文件系统对话框。

学习目标

(1)会使用DriveListBox(驱动器列表框)控件。

(2)会使用DirListBox(目录列表框)控件。

(3)会使用FileListBox(文件列表框)控件。任务实施

1.了解驱动器列表框

驱动器列表框DriveListBox是下拉式列表框,它与目录列表框、文件列表框一样,有许多标准属性,包括Enabled、Visible等。此外,它还有一个Drive属性,用来设置或返回所选择的驱动器名。Drive属性只能用程序代码设置,不能通过属性窗口设置。设置格式为

驱动器列表框名称.Drive[=驱动器名]

【说明】

(1)格式中的“驱动器名”是指定的驱动器,如果省略,则默认为当前驱动器。

(2)在程序执行期间,显示当前磁盘驱动器名称。如果单击驱动器列表框右端的下拉箭头,则显示计算机中所有的驱

动器名称,如图10.1所示。单击某驱动器,可把它变为当前驱动器。图10.1在运行期间的驱动器列表框

(3)使用ChDrive语句可以将指定的驱动器设为当前驱动器,如:

ChDriveDrive1.Drive

‘将用户在列表框中选择的驱动器设为当前驱动器

ChDrive“D”

'将D:设为当前驱动器

(4)每次重新设置驱动器列表框的Drive属性时,都将引发Change事件。驱动器列表框的默认名称为Drive1,其Change事件过程的开头为

PrivateSubDrive1_Change()

2.了解目录列表框

目录列表框用来显示当前驱动器上的目录结构,刚建立时显示当前驱动器的顶层目录和当前目录。顶层目录用打开的文件夹表示,当前目录用加阴影的文件夹表示,当前目录下的子目录用关闭的文件夹表示,如图10.2所示。在目录列表框中只显示当前驱动器上的目录。如果要显示其他驱动器上的目录,必须改变路径,即重新设置目录列表框的Path属性。

Path属性适用于目录列表框和文件列表框,用来设置或返回当前驱动器的路径。Path属性在设计模式下不可用。其语法格式为

[窗体.]目录列表框.|文件列表框.Path[="路径"]图10.2在设计阶段的目录列表框

【说明】

(1)格式中的“窗体”是目录列表框所在的窗体,如果省略,则为当前窗体。如果省略[=“路径”],则显示当前路

径,如:

Dir1.Path=“c:\windows”‘将当前目录设为c:\windows

其中,Dir1是目录列表框的默认控件名。

(2)使用ChDir语句也可以改变当前的目录或文件夹,如:

ChDirDir1.Path ‘将用户在目录列表框中选取的目录设为当前目录

(3)驱动器列表框与目录列表框有着密切的关系。在一般情况下,改变驱动器列表框中的驱动器名后,目录列表框中的目录应随之变为该驱动器上的目录,也就是使驱动器列表框和目录列表框产生同步效果。

3.了解文件列表框

用驱动器列表框和目录列表框可以指定当前驱动器和当前目录,而文件列表框可以用来显示当前目录下的文件(可通过Path属性改变)。

文件列表框的默认控件名是File1。与文件列表框有关的属性较多,其主要属性如表10-1所示。

【课堂演练】

【实例10-1】在实际应用中,驱动器列表框、目录列表框和文件列表框往往需要同步操作,请编写程序使三者同步。

【实现步骤】

可以通过改变Path属性来引发Change事件:

PrivateSubDir1_Change()

File1.Path=Dir1.Path

EndSub该事件过程使窗体上的目录列表框Dir1与文件列表框File1产生同步。类似地,增加下面的事件过程就可以使三者同步:

PrivateSubDrive1_Change()

Dir1.Path=Drive1.Drive

EndSub

同步操作情况如图10.3所示。图10.3使驱动器列表框、目录列表框、文件列表框三者同步

任务10.2文件系统对象

任务导入

VB允许使用两种不同的方法来处理驱动器、文件夹和文件,即传统的方法和使用新的工具FileSystemObject(FSO)对象模型。

VB具有FSO模型功能,该模型提供了一个基于对象的工具来处理文件夹和文件。它使应用程序能够创建、改变、移动和删除文件夹,或者检测是否存在指定的文件夹,如果存在,在什么位置等。另外,FSO模型还能获取关于文件夹的信息,如名称、创建日期或最近修改日期等。与早期的VB语句和编程命令比较,使用FSO模型对文件进行处理更加简单。学习目标

(1)了解FSO模型中包含的对象。

(2)会使用FSO模型创建FileSystemObject对象、对新创建的对象使用适当的方法、访问该对象的属性。

(3)会使用FSO模型管理驱动器。

(4)会使用FSO模型管理文件夹。

(5)会使用FSO模型管理文件。任务实施

1.了解FSO(FileSystemObject)模型中的对象

FSO模型包含在一个称为Scripting的类型库中,此类型库位于Scrrun.Dll文件中。如果还没有引用此文件,则应从“工程”菜单的“引用”对话框中选择“MicrosoftScriptingRuntime”项,如图10.4所示,然后就可以使用“对象浏览器”来查看其对象、集合、属性、方法、事件以及常数了。图10.4“引用”对话框FSO模型包括表10-2所示的对象。

2.创建FileSystemObject对象

(1)将一个变量声明为FileSystemObject对象类型,如下

所示:

Dim〈变量名〉AsNewFileSystemObject

(2)使用CreateObject方法来创建一个FileSystemObject对象,如下所示:

Set<变量名>=CreateObject("Scripting.FileSystemObject")

在上面的语法中,Scripting是类型库的名称,FileSystemObject是想要创建的一个实例对象的名称。

3.对新创建的对象使用适当的方法

在FileSystemObject对象中,某些操作可以使用不同的方法。例如,想要创建一个新对象,既可以使用CreateFolder方法,也可以使用CreateTextFile方法。(FSO对象模型不支持创建或删除驱动器。)如果想要删除对象,可以使用FileSystemObject对象的DeleteFile和DeleteFolder方法,或者File和Folder对象的Delete方法。

如果想要复制一个文件,既可以使用FileSystemObject对象的CopyFile方法,也可以使用File对象的Copy方法。这两者的功能是完全相同的。两者同时存在可以提高编程灵活性。

4.访问已有的驱动器、文件和文件夹

要访问一个已有的驱动器、文件或文件夹,可以使用FileSystemObject对象中相应的“Get”方法:GetDrive、GetFolder和GetFile。

例如,要访问C盘根目录下存放的test.txt文件,可以使用如下的代码:

DimfsoAsNewFileSystemObject,filAsFile

Setfil=fso.GetFile("C:\test.txt")

5.访问对象的属性

一旦有了对象的句柄,就能够访问其属性。例如,假定想要获得一个特定文件夹的名称,首先要创建该对象的一个实例,然后通过适当的方法(在本例中是GetFolder方法,因为该文件夹已经存在)得到其句柄,方法如下:

Setfldr=fso.GetFolder("C:\")现在有了一个Folder对象的句柄,就可以查看其Name属性了,代码如下:

Debug.Print“Foldernameis:”;fldr.Name

如果想要找出一个文件的最新修改时间,可以使用如下

代码:

DimfsoAsNewFileSystemObject,filAsFile

Setfil=fso.GetFile(“C:\detlog.txt”)‘获得要查询的File对象

Debug.Print"Filelastmodified:";fil.DateLastModified '显示信息

6.管理驱动器

可以在程序中使用FSO模型来处理驱动器,如同在“Windows资源管理器”中进行交互方式一样。

Drive对象允许获得一个系统的各个驱动器的信息,这些驱动器可以是物理的,也可以是位于网络上的。通过该对象的属性可以获得下列信息:

(1)以字节表示的驱动器总空间(TotalSize属性)。

(2)以字节表示的驱动器可用空间(AvailableSpace或FreeSpace属性)。

(3)给驱动器指定的字母号(DriveLetter属性)。

(4)驱动器类型,诸如软盘、硬盘、远程(网络)盘、光盘或者RAM盘(DriveType属性)。DriveType属性返回表10-3中所列的值。

(5)驱动器序列号(SerialNumber属性)。

(6)驱动器使用的文件系统类型,如FAT、FAT32、NTFS等(FileSystem属性)。

(7)驱动器是否可用(IsReady属性)。

(8)共享和/或卷标的名称(ShareName或VolumeName属性)。

(9)驱动器的路径或根文件夹(Path或RootFolder属性)。

【课堂演练】

【实例10-2】查看驱动器信息。在Drive1中改变驱动器后,程序将弹出信息框,显示所选驱动器的有关信息。

【实现步骤】

(1)建立应用程序用户界面,并设置对象属性。选择“新建”工程,进入窗体设计器,增加一个驱动器控件Drive1。在“工程”菜单中单击“引用”命令,打开“引用”对话框,选中“MicrosoftScriptingRuntime”项。

(2)编写程序代码。Drive1的Change事件代码为

PrivateSubDrive1_Change()

DimfsoAsNewFileSystemObject,drvAsDrive,sAsString

mdrive=Drive1.Drive

Setdrv=fso.GetDrive(fso.GetDriveName(mdrive))

s=“驱动器”&UCase(mdrive)&Chr(13)

s=s&drv.VolumeName&vbCrLf&Chr(13)

s=s&“最大空间:”&FormatNumber(drv.TotalSize/1024,0)

s=s&“Kb”&vbCrLf&Chr(13)&Chr(13)

s=s&"剩余空间:"&FormatNumber(drv.FreeSpace/1024,0)

s=s&"Kb"&vbCrLf

MsgBoxs,0,"查看驱动器信息"

EndSub

(3)运行程序,结果如图10.5所示。图10.5查看驱动器信息

7.管理文件夹

可以在程序中使用FSO模型来处理文件夹,如复制和移动文件夹、获得驱动器和文件夹的信息等。

表10-4列出了创建、删除、移动和复制文件夹所使用

的方法。表10-5列出了文件夹定位的一些方法。表10-6列出了Folder对象的属性。

8.管理文件

文件管理主要有两类:一是移动、复制和删除文件,二是创建、添加、删除数据以及阅读文件。通过使用FSO模型中的Copy、Delete、Move及OpenAsTextStream等,可以操作VB中的文件。

文件对象File的属性与文件夹对象的属性相似,参见表10-6。对文件的移动、复制和删除,FSO模型分别提供了两种方法,见表10-7。

9.创建数据文件

使用FSO模型创建的文件对象(File)属于顺序型的文本文件。File对象所具有的属性和方法可以使文件的打开、关闭、读出与写入非常方便。

有三种方法可以创建顺序型的空文本文件C:\testfile.txt。

(1)使用CreateTextFile方法:

DimfsoAsNewFileSystemObject,filAsFile

Setfil=fso.CreateTextFile("C:\testfile.txt",True)

(2)使用FileSystemObject对象的OpenTextFile方法,该对象的ForWriting标志设置为

DimfsoAsNewFileSystemObject,tsAsNewTextStream

Setts=fso.OpenTextFile("C:\testfile.txt",ForWriting)

(3)使用带ForWriting标志设置的OpenAsTextStream方法:

DimfsoAsNewFileSystemObject,filAsFile,tsAsTextStream

Setfso=CreateObject(“Scripting.FileSystemObject”)

fso.CreateTextFile(“testfile.txt”)

Setfil=fso.GetFile(“testfile.txt”)

Setts=fil.OpenAsTextStream(ForWriting)

10.写入数据文件

文本文件一经创建,就可以分三步向其中加入数据:

(1)打开文本文件以备写入数据。

(2)写入数据。

(3)关闭文件。

添加数据所使用的方法如表10-8所示。

11.从文件中读取数据

读取数据所使用的方法如表10-9所示。如果使用Read或ReadLine方法,并且想要跳过数据的某些部分,可以使用Skip或SkipLine方法。这些读取方法产生的文本被存储在一个字符串中,而这个字符串可以在一个控件中显示,也可以被字符串函数分解(如Left、Right和Mid)、合并等。任务10.3传统的文件I/O语句和函数

任务导入

对数据文件的创建与编辑除了使用前面介绍的FSO模型外,还可以使用传统的文件I/O(输入/输出)语句和函数来实现其打开、读出、写入等操作。

学习目标

(1)掌握数据文件的类型。

(2)掌握使用传统的文件I/O语句和函数处理数据文件的

步骤。

(3)会使用传统的语句访问顺序文件。

(4)会使用传统的语句访问随机文件。

(5)会使用传统的语句访问二进制文件。任务实施

1.掌握数据文件的类型

计算机的数据文件按数据的存放方式,分为以下三种类型:

(1)顺序型,用于连续存放的文本数据。顺序文件即普通的文本文件,它是一个接一个地顺序排列,只提供第一个记录的存储。要查找一个数据时,必须从头一个一个地读取直到找到要找的记录位置。所以它适用于有规律、不经常修改的数据。

(2)随机型,用于有固定长度记录结构的文本数据或者二进制数据。随机文件的每一个记录都有固定的长度,每一个记录都有一个记录号。在存入数据时,只需指明是第几个记录号,就可以把数据存入指定的位置;在读取数据时,只需给出该记录的记录号,就能直接读取记录。可以同时进行输入输出操作,存入和读取速度较快,数据容易更新。

(3)二进制型,以二进制格式保存,能用来存储任何所希望的数据。除了没有数据类型或者记录长度的含义以外,它与随机访问很相似,允许程序按所需的任何方式阻止和访问数据。这类文件的灵活性最大,但程序的工作量也最大。

2.掌握处理数据文件的步骤

在VB中,数据文件的处理操作一般按下面三步进行:

(1)打开(或建立)文件。一个文件必须先打开或建立后才能使用。如果一个文件已经存在,则打开该文件;如果不存在,则建立该文件。

(2)进行读、写操作。在文件处理中,把内存中的数据传输到相关联的外部设备(例如磁盘),并作为文件存放的操作叫做写数据;把数据文件中的数据传输到内存程序中的操作叫做读数据。一般来说,在内存与外设的数据传输中,由内存到外设叫做输出或写,而由外设到内存叫做输入或读。

(3)关闭文件。

3.访问顺序文件

顺序文件是普通的文本文件,其结构比较简单。它的存储方式是顺序存储,即一个数据接着一个数据地顺序排列。

如果要编辑一个文件,先要把它的内容读入到内存变量中,然后修改这些变量,最后再把这些变量写回到该文件。

1)顺序文件的打开

在对文件进行操作之前,首先要打开文件。当按顺序访问(打开)一个文件时,需要使用Open语句,其语法为

Open〈文件名〉For{Input|Output|Append}As〈文件号〉[Len=buffersize]

2)顺序文件的读取操作

要读取文本文件的内容,应以Input方式打开该文件,然后使用LineInput#、Input()或者Input#语句将文件复制到内存变量中:

LineInput#〈文件号〉,〈变量名〉

Input(Length,〈文件号〉)

Input#〈文件号〉,〈变量名1〉[,〈变量名2〉…]

3)顺序文件的写入操作

要将数据写入文本文件,应以Output或Append方式打开该文件,然后使用Print#或者Write#语句将数据写入文件中:

Print#〈文件号〉,〈数据〉[{,|;}]

Write#〈文件号〉,〈数据〉

4)顺序文件的关闭

打开一个文件后,在进行其他相关类型的操作前,必须先使用Close语句关闭它,其语法为

Close〈文件号1〉[,〈文件号2〉…]

【课堂演练】

【实例10-3】设计一个简易的文本编辑器,使其具有创建、编辑、保存普通文本文件的功能,如图10.6所示。图10.6简易文本编辑器

【实现步骤】

(1)建立应用程序用户界面,并设置对象属性。

选择“新建”工程,进入窗体设计器,在窗体上增加一个文本框Text1,一个公共对话框Commondialog1和五个命令按钮Command1~Command5,如图10.7所示。图10.7建立用户界面及设置对象属性设置窗体、文本框、公共对话框的属性,如表10-10所示,命令按钮及其他的属性设置参见图10.12。

(2)编写代码。

“新建”命令按钮Command1的Click事件代码为

PrivateSubCommand1_Click()

Text1.Text=“”

Form1.Caption=“未命名”

Text1.SetFocus

EndSub“打开”命令按钮Command2的Click事件代码为

PrivateSubCommand2_Click()

CommonDialog1.ShowOpen‘显示“打开”公共对话框

fname=CommonDialog1.FileName

Iffname<>“”Then

Text1.Text=“”

OpenfnameForInputAs#1’打开文件

b=""

DoUntilEOF(1)‘没有到文件尾

LineInput#1,nextline’读数据

b=b&nextline&Chr(13)&Chr(10)

Loop

Close#1‘关闭文件

Text1.Text=b

EndIf

Form1.Caption=fname

EndSub“保存”命令按钮Command3的Click事件代码为

PrivateSubCommand3_Click()

IfForm1.Caption=“未命名”OrForm1.Caption=“”Then

CommonDialog1.ShowSave‘显示“另存为”公共对话框

fname=CommonDialog1.FileName

Else

fname=Form1.Caption

EndIf

Iffname<>“”Then

OpenfnameForOutputAs#1‘以Output方式打开文件

Print#1,Text1.Text’写入数据

Close#1‘关闭文件

EndIf

EndSub“另存”命令按钮Command4的Click事件代码为

PrivateSubCommand4_Click()

CommonDialog1.ShowSave‘显示“另存为”公共对话框

fname=CommonDialog1.FileName

Iffname<>""Then

OpenfnameForOutputAs#1‘以Output方式打开文件

Print#1,Text1.Text’写入数据

Close#1 ‘关闭文件

EndIf

EndSub“关闭”命令按钮Command5的Click事件代码为

PrivateSubCommand5_Click()

Text1.Text=“”

UnloadMe

EndSub

(3)运行程序。

单击不同的命名按钮,可以进行不同的文本编辑操作。单击“打开”按钮时,将弹出“打开”对话框,如图10.8所示,从中选择需要打开的文件,将内容读入文本框中。图10.8在文本编辑器中单击“打开”按钮单击“保存”按钮时,将打开“保存”对话框,可以对文本内容进行保存,如图10.9所示。图10.9在文本编辑器中单击“保存”按钮

4.访问随机文件

1)随机文件的打开与关闭

与顺序文件不同,打开一个随机文件后,既可以用于写操作,也可以用于读操作。随机文件的打开仍用Open语句,但其语法不同:

Open〈文件名〉[ForRandom]As〈文件号〉Len=〈记录长度〉

2)随机文件的读写操作

随机文件与顺序文件的读写操作类似,但通常把需要读写的记录中的各字段放在一个记录类型中,同时应指定每个记录的长度。对打开的随机文件中的记录进行编辑时,要先把记录从文件读到内存变量,然后改变各变量的值,最后把变量写回该文件。另外,还有一些对记录的其他操作。例如,把记录读入变量,使用Get#语句:

Get#〈文件号〉,〈记录号〉,〈变量名〉

其中,〈记录号〉是要读入的记录号数;〈变量名〉是接收记录内容的记录型变量名,一般声明为用户定义类型。使用Put#语句可以把数据写入随机文件或替换随机文件中的记录:

Put#〈文件号〉,〈记录号〉,〈变量名〉

添加记录时,应使用前述代码段中所示的Put语句,把〈记录号〉的值设置为比文件中的记录数多1。删除记录时,通过清除其字段可以删除一个记录,但是该记录仍在文件中存在。通常文件中不能有空记录,因为它们会浪费空间且会干扰顺序操作。最好把余下的记录拷贝到一个新文件,然后删除老文件。

【课堂演练】

【实例10-4】利用随机文件保存学生的成绩,可以输入学生的学号、姓名以及三门功课的成绩,并浏览或删除数据。

【实现步骤】

(1)建立应用程序用户界面,并设置对象属性。选择“新建”工程,进入窗体设计器,首先增加两个框架Frame1和Frame2。选定Frame1,在其中增加一个列表框List1;选定Frame2,在其中增加一个文本框数组Text1(0)~Text1(5)和六个标签Label1~Label6。再增加四个命令按钮Command1~Command4。

设置框架、文本框、标签、列表框和命令按钮的属性,如图10.10所示。图10.10建立用户界面及设置对象属性

(2)编写事件代码。

首先在窗体的通用过程段创建用户定义类型,并声明变量:

PrivateTypecj

xmAsString*6

xhAsString*6

xbAsString*2

sxAsInteger

ywAsInteger

wyAsInteger

EndType

PrivatedaAscj编写窗体的Load事件代码,使之具有显示数据的功能:

PrivateSubForm_Load()

DimlastrecAsInteger,sxAsSingle

DimywAsSingle

Open“xsda2.dat”ForRandomAs#1Len=Len(da) ‘打开随机文件

lastrec=LOF(1)/Len(da)

List1.Clear

Forn=1Tolastrec

Get#1,n,da

Withda

xh=Format(.xh,“@@@@”)

xm=Format(RTrim(.xm),“@@@@”)

xb=Format(RTrim(.xb),“@@”)

sx=Format(.sx,“##”)

yw=Format(.yw,"##")

wy=Format(.wy,“##”)

msg=xh&xm&xb&“”&Str(yw)&“”&Str(wy)&“”&Str(sx)

EndWith

List1.AddItemmsg

Next

Close#1‘关闭随机文件

EndSub编写“输入”命令按钮Command1的Click事件代码:

PrivateSubCommand1_Click()

Fori=0To5

Text1(i).Text=“”

Next

Text1(0).SetFocus

EndSub编写“添加”命令按钮Command2的Click事件代码:

PrivateSubCommand2_Click()

DimlastrecAsInteger

Withda

.xh=Text1(0).Text

.xm=Text1(1).Text

.xb=Text1(2).Text

.sx=Val(Text1(3).Text)

.yw=Val(Text1(4).Text)

.wy=Val(Text1(5).Text)

EndWith

Open“xsda2.dat”ForRandomAs#1Len=Len(da) ‘打开随机数据文件

lastrec=LOF(1)/Len(da)

Put#1,lastrec+1,da

Close#1

CallForm_Load

Text1(0).SetFocus

EndSub编写“删除”命令按钮Command3的Click事件代码:

PrivateSubCommand3_Click()

DimlastrecAsInteger

recnum=List1.ListIndex+1

Open“rec.tem”ForRandomAs#1Len=Len(da) ‘打开临时随机文件

Open“xsda2.dat”ForRandomAs#2Len=Len(da)

’打开随机数据文件

lastrec=LOF(2)/Len(da)

Forn=1Tolastrec

Ifn<>recnumThen

Get#2,n,da

Put#1,,da

Else

Get#2,n,da

Withda

Text1(0).Text=.xh

Text1(1).Text=.xm

Text1(2).Text=.xb

Text1(3).Text=.sx

Text1(4).Text=.yw

Text1(5).Text=.wy

EndWith

EndIf

Next

Close#1

Close#2

Kill“xsda2.dat”

Name“rec.tem”As“xsda2.dat”

CallForm_Load

Text1(0).SetFocus

EndSub编写“结束”命令按钮Command4的Click事件代码:

PrivateSubCommand4_Click()

UnloadMe

EndSub编写列表框List1的Click事件代码:

PrivateSubList1_Click()

IfList1.ListIndex>–1Then

Command3.Enabled=True

Else

Command3.Enabled=False

EndIf

EndSub(3)运行程序,结果如图10.11所示。图10.11学生成绩管理程序运行结果

5.访问二进制文件

利用二进制存取可以获取任一文件的原始字节,即不仅能获取ASCII文件,而且能获取非ASCII文件的原始字节。这样,用户就可以读取或修改以非ASCII格式存盘的文件了,如可执行文件(.exe)。

1)创建和打开二进制文件

创建和打开一个二进制文件都是用同一个Open语句来实现的,其

温馨提示

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

评论

0/150

提交评论