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

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

(0)

相关推荐

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

    在开发WEB应用程序中,我们经常需要对文件系统中的驱动器.文件夹和文件进行处理,比如收集驱动器的相关信息:创建.添加.移动或删除文件夹和文件等.在VB6中新提供了一套称为FSO(File System Object)对象模型来对文件系统进行访问处理.该模型提供了一个基于对象的工具,通过它所提供的一系列属性和方法,我们可以在应用程序中更简单.灵活地对文件系统进行各种操作.  一.FSO简介  FSO对象模型包含以下几种对象:  Drive对象:允许收集系统物理或通过LAN与系统逻辑连接的硬盘.CD

  • Excel导入数据库时出现的文本截断问题解决方案

    问题 在把Excel导入到数据库中时,发生文本截断问题:即导入的数据每行只有一部分,原始的Excel数据为:     忽略错误 导入SQLServer2008过程中,如果源数据和目标数据类型不匹配会导入失败,所以导入数据时会忽略错误,这次导入题库也是,结果出现了这样的问题:  仔细观察你会发现,题目不完整,最长为25个汉字,很明显这是varchar(50)数据类型,但是源数据和目的数据明明都为文本类型. 不忽略错误 如果不忽略错误,导入数据最后一步会产生这样的问题: 复制代码 代码如下: -正在

  • java读取cvs文件并导入数据库

    本文实例为大家分享了java读取cvs文件并导入数据库的具体代码,供大家参考,具体内容如下 首先获取文件夹下面的所有类型相同的excel,可以用模糊匹配contains("匹配字段") public static List getDictory(String path) { File f = new File(path); List<String> dictories = new ArrayList<String>(); if (!f.exists()) { S

  • ThinkPHP 框架实现的读取excel导入数据库操作示例

    本文实例讲述了ThinkPHP 框架实现的读取excel导入数据库操作.分享给大家供大家参考,具体如下: 入口文件中: require_once VENDOR_PATH.'PHPExcel/PHPExcel/IOFactory.php'; require_once VENDOR_PATH.'PHPExcel/PHPExcel.php'; PHP: namespace Home\Controller; class ExcelController extends CommonController {

  • Navicat 导出导入数据库的实现方法

    描述 把mysql数据库中的一个数据库导出(备份,或者传输给别人), 导出: 使用Navicat连接到mysql,然后选中你要导出的数据库,右键,选择转储SQL文件...,命名为数据名.sql,保存到本地中即可.如下图: 选择转储SQL文件- 保存到本地:数据库名.sql 保存成功 usersinfo.sql中的内容: /* Navicat MySQL Data Transfer Source Server : localhost_3306 Source Server Version : 505

  • Java实现上传Excel文件并导入数据库

    目录 Java实现上传Excel文件并导出到数据库 1.导入依赖 2.domain 3.utils 4.Controller 5.xml Java实现上传Excel文件并导出到数据库 1.导入依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>4.1.2</version> </de

  • WordPress导入数据库出现”Unknown collation: ‘utf8mb4_unicode_ci”错误的解决办法

    从WordPress4.2版本开始,如果我们在MYSQL5.1版本数据中导出的数据编码是带有utf8mb4格式的,如果我们搬迁网站复原数据的时候,MYSQL5.5等高版本数据库导入到MYSQL5.1低版本的时候会出现"Unknown collation: 'utf8mb4_unicode_ci"错误问题,以前是没有这个问题的,从WP4.2开始才有的. 要解决这个问题,如果我们使用的VPS/服务器,可以类似老左昨天的"Linux CentOS6环境下MySQL5.1升级至MyS

  • ASP.NET下将Excel表格中的数据规则的导入数据库思路分析及实现

    今天接到新的需求,要求将Excel表格中的数据显示在页面上. 我个人分析,首先要将Excel中的数据存到数据库中,再进行页面显示,本人菜鸟级别,以前没有做过读取Excel数据,研究了一下(主要是看别人的资料),写一下实现过程,我想写几篇关于Excel的,首先是规则的Excel数据导入,再有就是不规则的Excel数据导入,还有就是根据数据生成Excel. 下面开始:将规则的Excel导入数据库 首先看一下Excel结构,如图:  这是一个简单的.规整的Excel格式,将它导入到数据库中 复制代码

  • 修改php.ini实现Mysql导入数据库文件最大限制的修改方法

    自己电脑上装的WAMP,在导入数据库比较大(大于2M)时遇到错误,不能导入. 找到解决方法: php.ini配置文件中有三处地方需要改动: upload_max_filesize memory_limit post_max_size 这三个值都根据实际情况改下,重启服务器以后,虽然导入时仍然显示是 最大限制:2,048 KB) : 但实际上已经可以导入很大的数据库了...

  • PHP将Excel导入数据库及数据库数据导出至Excel的方法

    本文实例讲述了PHP将Excel导入数据库及数据库数据导出至Excel的方法.分享给大家供大家参考.具体实现方法如下: 一.导入 导入需要使用能读取Excel的组件,网上也有比较好的组件,这里分享我使用的:下载  提取码:vxyn.(注意两个文件有引用关系) <?php //传入要导入的Excel的文件名 function import_to_DB($filename) { require_once'reader.php'; $data = new Spreadsheet_Excel_Reade

随机推荐