使用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

<FORM METHOD=POST ACTION="upFile.asp" >

<div align="center"> <br>

<br>

<br>

<br>

<input type="file" name="path" size="40">

<INPUT TYPE="submit" name="dr" value="导入信息">

</div>

</FORM>

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

<%@Language="VBScript"%>

<%Response.Buffer=true%>

<!--#include file="adovbs.inc"-->

<%

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 "<br>"+"导入库成功!<a href=dolist.html>[继续导入]</a><br>"

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

至此,全文内容讲解结束,希望这篇文章能给读者带来一定的帮助。

使用FSO把文本信息导入数据库相关推荐

  1. mysql导入格式化数据_mysql将格式化文本数据导入数据库

    前提:文本数据必须是式化好的,比如下式 张三|1988.2.3|湖北武汉|武汉大学 李四 |990.5.6|湖南湘潭|湖南大学 王五|1991.6.12|北京|北京理工大学 第1字段 张三 第 2 字 ...

  2. Android 性能测试小工具 (cpu,内存,电量,流量数据浮窗显示,信息导入数据库、sd卡)

    [mie haha的博客]转载请注明出处(万分感谢!): https://blog.csdn.net/qq_40315080/article/details/98610748 写一个测试各个app/手 ...

  3. python导入excel表格-通过Python将Excel表格信息导入数据库

    前言 公司原采用Excel表格方式记录着服务器资产信息,随着业务的增加,相应的硬件资产也增加,同时物理机虚拟化出多台虚拟机,存在表格管理杂乱.变更资产信息不能及时相互同步, 为了紧跟时代的步伐,老大搞 ...

  4. java调sqlloader,Java调用SqlLoader将大文本数据导入数据库

    项目描述 将一千万条数据,大约500M的文本文档的数据导入到数据库 分析:通过Java的IO流解析txt文本文档,拼接动态sql实现insert入库,可以实现,缺点如下 第一:IO流解析大文本文件对机 ...

  5. Python爬虫与信息提取(八)将新浪热搜排名导入数据库

    python爬取新浪热搜排名并导入数据库 上一篇文章简单介绍了如何使用python爬取新浪微博的热搜排名: 爬虫实例:爬取新浪微博热搜排名 如果了解清楚原理的话是非常容易懂的,但是这样单纯的进行查询结 ...

  6. ubuntu 导入mysql_Ubuntu 下MySQL导入数据库.sql文件 命令

    Ubuntu 下首先建好数据库,如tempmysql -h localhost -u root -p templt;/home/pt/test.sql会提示你输入密码,输入就OK.2. 导入 Ubun ...

  7. python清洗文本数据_02.数据预处理之清洗文本信息

    准备30万条新闻数据 编号 新闻类别 新闻数量(条) 1 财经 37098 2 教育 41963 3 科技 65534 4 时政 63086 5 体育 65534 6 娱乐 65534 yield生成 ...

  8. 钉钉企业内部机器人开发——同步组织架构人员信息到数据库

    开发钉钉机器人的过程中,我们不仅需要直接把组织架构用户信息导入数据库,还要不定时的进行同步,因为钉钉里面的人员总是在变动,部门也是不断在调整. 下面是使用递归的方式,调用钉钉接口,同步部门和人员信息, ...

  9. excel数据导入mysql被截取_Excel导入数据库时出现的文本截断问题解决方案

    问题 在把Excel导入到数据库中时,发生文本截断问题:即导入的数据每行只有一部分,原始的Excel数据为: 忽略错误 导入SQLServer2008过程中,如果源数据和目标数据类型不匹配会导入失败, ...

最新文章

  1. 使用扩展的 CodeIgniter 框架实现 RESTful 框架
  2. 机智云5.0推出IoT套件GoKit4.0 可实现物联网应用协同开发
  3. Mr.J--简易的判断输入两次密码是否一致(静态)
  4. 基于生成对抗的知识图谱零样本关系学习 AAAI2020
  5. python qt5 数据改变 触发信号_pyqt5 使用 QTimer, QThread, pyqtSignal 实现自动执行,多线程,自定义信号触发。...
  6. 超融合架构的优缺点_知道 超融合基础架构吗
  7. 构建应用状态时,你应该避免不必要的复杂性
  8. yum -y install php-mysql 版本冲突
  9. Android handler.obtainMessage()传字符串用法
  10. 试除法判定质数、试除法分解质因数(附例题)
  11. php ksc歌词,KSC字幕制作方法 KSC歌词编辑教程
  12. 【EXCEL】 EXCEL VBA SQL UPDATE:操作必须使用一个可更新的查询
  13. 论文中期报告要怎么写?
  14. 网络游戏营销植入案例
  15. 全覆盖路径规划--Morse函数临界点的地图精确单元分解
  16. 4.顺序栈和循环队列的基本运算
  17. 并行接口芯片8255A的结构及其功能
  18. 常见的状态码出现原因200、301、302、403、404、500、503
  19. 如何理解计算机网络的体系结构,如何理解计算机组成和计算机体系结构?
  20. 腾讯云搭载frp服务端-映射本地客户端到外网(小米路由pro内网穿透)

热门文章

  1. linux怎么找回普通用户密码,Ubuntu Linux系统密码找回
  2. matlab结束外循环,求单源最短路径的BellmanFord算法的matlab实现及其优化
  3. #考试酷#A8_Increment and Decrement Operators
  4. 【嵌入式Linux学习七步曲之第五篇 Linux内核及驱动编程】Oops在Linux 2.6内核+PowerPC架构下的前世今生
  5. html clear 清楚li,CSS清楚浮动clear:both
  6. 分布式计算模式:MapReduce
  7. 拨打电话(三种方式)
  8. 白光干涉仪压电陶瓷的大作用 | 科普篇
  9. 移动端使用PhotoSwipe 图片放大浏览
  10. system data oracle,System.Data.OracleClient大全