热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

使用FSO把文本信息导入数据库

使用FSO把文本信息导入数据库
在开发WEB应用程序中,我们经常需要对文件系统中的驱动器、文件夹和文件进行处理,比如收集驱动器的相关信息;创建、添加、移动或删除文件夹和文件等。在VB6中新提供了一套称为FSO(File System Object)对象模型来对文件系统进行访问处理。该模型提供了一个基于对象的工具,通过它所提供的一系列属性和方法,我们可以在应用程序中更简单、灵活地对文件系统进行各种操作。 
  一、FSO简介 
  FSO对象模型包含以下几种对象: 
  Drive对象:允许收集系统物理或通过LAN与系统逻辑连接的硬盘、CD-ROM等驱动器的可用空间、共享名等信息。 
  Folder对象:允许创建、删除或移动文件夹,并向系统查询文件夹的名称、路径等。 
  Files对象:允许创建、删除或移动文件,并向系统查询文件的名称、路径等。 
  TextStream对象:允许创建和读写文本文件。 
  FileSystemObject对象:提供一整套用于驱动器、文件夹和文件操作的方法,在功能上可以把它看作是上面几个对象的集合并且经常与它们配合使用。与该对象相关联的很多方法重复了前面四个对象中的方法,因此我们既可以通过FileSystemObject对象来对驱动器、文件夹和文件进行大多数操作,也可以通过对应的驱动器、文件夹或文件对象对这些组件进行操作。FSO模型通过两种方法实现对同一对象的操作,其操作效果是相同的,提供这种冗余功能的目的是为了实现最大的编程灵活性。 
在这篇文章中,我们将讲解利用FSO对象模型的TextStream对象对文本文件的操作。 

(一) 用 FileSystemObject 来获取文本文件对象 
  1.创建一个 FileSystemObject 对象实例 
要进行文件操作,首先必须创建一个 FileSystemObject 对象实例,用来创建或打开一个文件.创建一个 FileSystemObject 对象实例的具体格式为(以AFileSystemObject)为例: 
Set AFileSystemObject = CreateObject("Scripting.FileSystemObjecct") 
  2.用 FileSystemObject 来获取文本文件对象TextStream 
FileSystemObject 提供了两种方法用于获取文本文件对象 TextStream,其中用于创建 
文件的是 CreateTextFile,用于打开已存在文件的是 OpenTextFile,两种方法的返回结果都是 
一个 TextStream 对象的实例,利用该对象可以进行文件的具体操作. 
⑴ 创建一个新文件 
  创建新文件的方法的具体格式为(以AFileSystemObject为例): 
   AFilesystemObject.CreateTextFile(NewFileName,OverwriteExistingFile,IsUnicode) 
其中: 
  NewFileName 是一个string值,指定要建立的文件的名称,通常为文件的实际路径 
加文件名称,如C:\webshare\aspsamp\filetest.txt 
  OverwriteExistingFile 是一个Boolean值,表示如果有同名文件存在时是否覆盖 
原来的文件.该参数可以省略,缺省时为False,即不覆盖原来文件. 
  IsUnicode 是一个Boolean值,表示要建立的文件是ASCII文件还是Unicode文件, 
该参数可以省略,缺省时为False,即为ASCII文件. 
⑵ 打开已存在的文件 
  打开已存在文件的方法的具体格式为(以AFileSystemObject为例): 
   AFilesystemObject.OpenTextFile(FileName,IOMode,create,format) 
其中: 
  FileName 是一个string值,指定要打开的文件的名称,通常为文件的实际路径 
加文件名称,C:\filepath\test.txt 
  IOMode 是常数值,表示打开文件的目的,ForReading(1)表示用于读取数据; 
ForAppending表示用于增加数据.该参数可以省略,缺省时为ForReading. 
  Create 是一个Boolean值,表示要打开的文件不存在时是否创建新文件, 
该参数可以省略,缺省时为False,即不创建新文件. 
  Format 表示文件打开的方式.其可能的值及含义如下: 
TristateTrue : 以 Unicode 的方式打开. 
TristateFalse : 以 ASCII 的方式打开. 
TristateUseDefault : 以系统默认的方式打开. 
该参数可以省略,缺省时为 TristateFalse ,即ASCII方式. 
(二).用 TextStream 进行文件操作 
  在建立或打开了文件之后,就可利用对象 TextStream 提供的方法进行文件的实际操作了. 
  1.用于写操作的方法有: 
⑴ Write(string) 
  将由string指定的字符串写入到文件中. 
⑵ WriteLine(string) 
  在文件中写入由string指定的字符串,并写入一个换行字符. 
  参数string可以省略,此时将在文件中插入一个空行. 
⑶ WriteBlankLines(NumOfLines) 
  在文件中插入若干空行,行数由 NumOfLines 指定. 
  2.用于读操作的方法和属性方法有: 
⑴ AtEndOfLine 
  该属性是一个Boolean值,表示文件指针是否已指向当前行的行尾. 
⑵ AtEndOfStream 
  该属性是一个Boolean值,表示文件指针是否已指向文件尾. 
⑶ Column 
  该属性是一个整数值,表示文件指针在当前行中的位置. 
⑷ Line 
  该属性是一个整数值,表示文件指针所在行的行号. 
⑸ Read(NumOfCharacters) 
  该方法从文件当前位置开始,读入由NumOfCharacters数目指定的若干字符,返回一个 
  字符串. 
⑹ ReadLine 
  该方法从文件当前位置开始,读入当前行的内容直到行尾,返回一个字符串. 
⑺ ReadAll 
  该方法从当前位置开始,读入整个文件的内容直到文件结束,返回一个字符串. 
⑻ Skip(NumOfCharacters) 
  该方法从文件当前位置开始,跳过由NumOfCharacters数目指定的若干字符. 
⑼ SKipLine 
  该方法从文件当前位置开始,跳过当前行的内容. 
  3.用于关闭文件的方法有: 
⑴ Close 
  关闭已经建立或打开的文件. 

(三)、下面就以一个实例来说明如何使用FSO来读取文本文件和如何保存到数据库: 

1、 先创建一个读取文件路径的页面:file.htm 

… 

 

 
 


 


 


 

 

 

 

 

… 

2、 编写把获取到的文本值保存到数据库代码:upFile.asp 

<%@Language="Vbscript"%> 

<%Response.Buffer=true%> 

 

<% 

strCOnn="DSN=DataSourceName" 

set COnn=Server.CreateObject("ADODB.Connection") 

Conn.open strConn 

set ObjComm=Server.CreateObject("ADODB.Command") 

ObjComm.CommandText="sp_AddMsg" ‘调用存储过程 

ObjComm.CommandType=adCmdStoredProc 

Set ObjComm.ActiveCOnnection=Conn 

''''''''''创建输入输出参数''''''''''''''''' 

Set ObjParamECom=ObjComm.CreateParameter("WC_ECompanyName",adVarchar,adParamInput,100) 

ObjComm.Parameters.Append ObjParamECom 

'@in_ECompanyName Varchar(50), --公司英文名称 

Set ObjParamAddr=ObjComm.CreateParameter("WC_Address",adVarchar,adParamInput,200) 

ObjComm.Parameters.Append ObjParamAddr 

'@in_Address Varchar(50), --公司地址 

Set ObjParamCity=ObjComm.CreateParameter("WC_City",adVarchar,adParamInput,100) 

ObjComm.Parameters.Append ObjParamCity 

'@in_City Varchar(50), --城市 

… 

''''''''''创建参数完毕'''''''''''''''''''' 

%> 

<% 

dim AllText,strLine1,strLine2,strLine3 

dim strpath,fileurl 

fileurl="" 

strpath=Trim(Request.form("path")) 

fileurl=strpath 

SET FSO=CreateObject("Scripting.FileSystemObject") 

SET ATextStream=FSO.OpenTextFile(fileurl,1,false,TristateFalse) 

'''''''''提取数据'''''''''''''''''''''''''''' 

DO WHILE NOT ATextStream.AtEndOfStream 

''''''初始化变量'''''''''''''''' 

strLine1="" 

strLine2="" 

strLine3="" 

… 

''''''''''''''''''''''''''''''' 

ATextStream.SkipLine 

ATextStream.Skip(11) 

strLine1=Trim(ATextStream.ReadLine) 

ATextStream.Skip(11) 

strLine2=Trim(ATextStream.ReadLine) 

ATextStream.Skip(5) 

strLine3=Trim(ATextStream.ReadLine) 

… 

'End if 

''''''''''将变量加入参数集''''''''''''' 

ObjParamECom.value=strLine1 

ObjParamCCom.value=strLine2 

ObjParamAddr.value=strLine3 

… 

''''''''''操作结束'''''''''''''''''''' 

ObjComm.Execute() '运行命令 

LOOP 

response.write "
"+"导入库成功![继续导入]


set COnn=nothing 

set FSO=nothing 

set ATextStream=nothing 

%> 

附:存储过程sp_AddMsg代码 

CREATE PROCEDURE dbo.sp_AddMsg --导入国外企业信息 



@in_CompanyName Varchar(100), --公司名称 

@in_Address Varchar(200), --公司地址 

@in_City Varchar(100), --公司所在城市 

… 



AS 

SET NOCOUNT ON 

BEGIN TRAN 

INSERT INTO Tb_WCLibrary( 

WC_CompanyName, 

WC_CCompanyName, 

WC_Address, 

… 



VALUES( 

@in_CompanyName, 

@in_CCompanyName, 

@in_Address, 

… 



IF @@ERROR <> 0 

BEGIN 

ROLLBACK TRAN 

RETURN -1 

END 

COMMIT TRAN 

RETURN 0 

SET NOCOUNT OFF 

至此,全文内容讲解结束,希望这篇文章能给读者带来一定的帮助。
推荐阅读
  • Linux环境变量$PATH的作用及使用方法
    本文介绍了Linux环境变量$PATH的作用及使用方法。$PATH是一个由多个目录组成的变量,用冒号分隔。当执行一个指令时,系统会按照$PATH定义的目录顺序搜索同名的可执行文件,如果有多个同名指令,则先找到的会被执行。通过设置$PATH变量,可以在任何地方执行指令,无需输入绝对路径。 ... [详细]
  • 本文介绍了使用CentOS7.0 U盘刻录工具进行安装的详细步骤,包括使用USBWriter工具刻录ISO文件到USB驱动器、格式化USB磁盘、设置启动顺序等。通过本文的指导,用户可以轻松地使用U盘安装CentOS7.0操作系统。 ... [详细]
  • 本文介绍了lua语言中闭包的特性及其在模式匹配、日期处理、编译和模块化等方面的应用。lua中的闭包是严格遵循词法定界的第一类值,函数可以作为变量自由传递,也可以作为参数传递给其他函数。这些特性使得lua语言具有极大的灵活性,为程序开发带来了便利。 ... [详细]
  • Final关键字的含义及用法详解
    本文详细介绍了Java中final关键字的含义和用法。final关键字可以修饰非抽象类、非抽象类成员方法和变量。final类不能被继承,final类中的方法默认是final的。final方法不能被子类的方法覆盖,但可以被继承。final成员变量表示常量,只能被赋值一次,赋值后值不再改变。文章还讨论了final类和final方法的应用场景,以及使用final方法的两个原因:锁定方法防止修改和提高执行效率。 ... [详细]
  • GetWindowLong函数
    今天在看一个代码里头写了GetWindowLong(hwnd,0),我当时就有点费解,靠,上网搜索函数原型说明,死活找不到第 ... [详细]
  • 本文介绍了求解gcdexgcd斐蜀定理的迭代法和递归法,并解释了exgcd的概念和应用。exgcd是指对于不完全为0的非负整数a和b,gcd(a,b)表示a和b的最大公约数,必然存在整数对x和y,使得gcd(a,b)=ax+by。此外,本文还给出了相应的代码示例。 ... [详细]
  • EPICS Archiver Appliance存储waveform记录的尝试及资源需求分析
    本文介绍了EPICS Archiver Appliance存储waveform记录的尝试过程,并分析了其所需的资源容量。通过解决错误提示和调整内存大小,成功存储了波形数据。然后,讨论了储存环逐束团信号的意义,以及通过记录多圈的束团信号进行参数分析的可能性。波形数据的存储需求巨大,每天需要近250G,一年需要90T。然而,储存环逐束团信号具有重要意义,可以揭示出每个束团的纵向振荡频率和模式。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • 电销机器人作为一种人工智能技术载体,可以帮助企业提升电销效率并节省人工成本。然而,电销机器人市场缺乏统一的市场准入标准,产品品质良莠不齐。创业者在代理或购买电销机器人时应注意谨防用录音冒充真人语音通话以及宣传技术与实际效果不符的情况。选择电销机器人时需要考察公司资质和产品品质,尤其要关注语音识别率。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文介绍了一个从入门到高手的VB.NET源代码,通过学习这些源代码,可以在21天内成为VB.NET高手。文章提供了下载地址,并提醒读者加入作者的QQ群和收藏作者的博客。 ... [详细]
author-avatar
naozhewaner_254
这个家伙很懒,什么也没留下!
Tags | 热门标签
RankList | 热门文章
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有