欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用FSO把文本信息導(dǎo)入數(shù)據(jù)庫(kù)

 更新時(shí)間:2006年08月25日 00:00:00   作者:  
在開(kāi)發(fā)WEB應(yīng)用程序中,我們經(jīng)常需要對(duì)文件系統(tǒng)中的驅(qū)動(dòng)器、文件夾和文件進(jìn)行處理,比如收集驅(qū)動(dòng)器的相關(guān)信息;創(chuàng)建、添加、移動(dòng)或刪除文件夾和文件等。在VB6中新提供了一套稱為FSO(File System Object)對(duì)象模型來(lái)對(duì)文件系統(tǒng)進(jìn)行訪問(wèn)處理。該模型提供了一個(gè)基于對(duì)象的工具,通過(guò)它所提供的一系列屬性和方法,我們可以在應(yīng)用程序中更簡(jiǎn)單、靈活地對(duì)文件系統(tǒng)進(jìn)行各種操作。 
  一、FSO簡(jiǎn)介 
  FSO對(duì)象模型包含以下幾種對(duì)象: 
  Drive對(duì)象:允許收集系統(tǒng)物理或通過(guò)LAN與系統(tǒng)邏輯連接的硬盤、CD-ROM等驅(qū)動(dòng)器的可用空間、共享名等信息。 
  Folder對(duì)象:允許創(chuàng)建、刪除或移動(dòng)文件夾,并向系統(tǒng)查詢文件夾的名稱、路徑等。 
  Files對(duì)象:允許創(chuàng)建、刪除或移動(dòng)文件,并向系統(tǒng)查詢文件的名稱、路徑等。 
  TextStream對(duì)象:允許創(chuàng)建和讀寫文本文件。 
  FileSystemObject對(duì)象:提供一整套用于驅(qū)動(dòng)器、文件夾和文件操作的方法,在功能上可以把它看作是上面幾個(gè)對(duì)象的集合并且經(jīng)常與它們配合使用。與該對(duì)象相關(guān)聯(lián)的很多方法重復(fù)了前面四個(gè)對(duì)象中的方法,因此我們既可以通過(guò)FileSystemObject對(duì)象來(lái)對(duì)驅(qū)動(dòng)器、文件夾和文件進(jìn)行大多數(shù)操作,也可以通過(guò)對(duì)應(yīng)的驅(qū)動(dòng)器、文件夾或文件對(duì)象對(duì)這些組件進(jìn)行操作。FSO模型通過(guò)兩種方法實(shí)現(xiàn)對(duì)同一對(duì)象的操作,其操作效果是相同的,提供這種冗余功能的目的是為了實(shí)現(xiàn)最大的編程靈活性。 
在這篇文章中,我們將講解利用FSO對(duì)象模型的TextStream對(duì)象對(duì)文本文件的操作。 

(一) 用 FileSystemObject 來(lái)獲取文本文件對(duì)象 
  1.創(chuàng)建一個(gè) FileSystemObject 對(duì)象實(shí)例 
要進(jìn)行文件操作,首先必須創(chuàng)建一個(gè) FileSystemObject 對(duì)象實(shí)例,用來(lái)創(chuàng)建或打開(kāi)一個(gè)文件.創(chuàng)建一個(gè) FileSystemObject 對(duì)象實(shí)例的具體格式為(以AFileSystemObject)為例: 
Set AFileSystemObject = CreateObject("Scripting.FileSystemObjecct") 
 ?。玻?nbsp;FileSystemObject 來(lái)獲取文本文件對(duì)象TextStream 
FileSystemObject 提供了兩種方法用于獲取文本文件對(duì)象 TextStream,其中用于創(chuàng)建 
文件的是 CreateTextFile,用于打開(kāi)已存在文件的是 OpenTextFile,兩種方法的返回結(jié)果都是 
一個(gè) TextStream 對(duì)象的實(shí)例,利用該對(duì)象可以進(jìn)行文件的具體操作. 
⑴ 創(chuàng)建一個(gè)新文件 
  創(chuàng)建新文件的方法的具體格式為(以AFileSystemObject為例): 
   AFilesystemObject.CreateTextFile(NewFileName,OverwriteExistingFile,IsUnicode) 
其中: 
  NewFileName 是一個(gè)string值,指定要建立的文件的名稱,通常為文件的實(shí)際路徑 
加文件名稱,如C:\webshare\aspsamp\filetest.txt 
  OverwriteExistingFile 是一個(gè)Boolean值,表示如果有同名文件存在時(shí)是否覆蓋 
原來(lái)的文件.該參數(shù)可以省略,缺省時(shí)為False,即不覆蓋原來(lái)文件. 
  IsUnicode 是一個(gè)Boolean值,表示要建立的文件是ASCII文件還是Unicode文件, 
該參數(shù)可以省略,缺省時(shí)為False,即為ASCII文件. 
⑵ 打開(kāi)已存在的文件 
  打開(kāi)已存在文件的方法的具體格式為(以AFileSystemObject為例): 
   AFilesystemObject.OpenTextFile(FileName,IOMode,create,format) 
其中: 
  FileName 是一個(gè)string值,指定要打開(kāi)的文件的名稱,通常為文件的實(shí)際路徑 
加文件名稱,C:\filepath\test.txt 
  IOMode 是常數(shù)值,表示打開(kāi)文件的目的,F(xiàn)orReading(1)表示用于讀取數(shù)據(jù); 
ForAppending表示用于增加數(shù)據(jù).該參數(shù)可以省略,缺省時(shí)為ForReading. 
  Create 是一個(gè)Boolean值,表示要打開(kāi)的文件不存在時(shí)是否創(chuàng)建新文件, 
該參數(shù)可以省略,缺省時(shí)為False,即不創(chuàng)建新文件. 
  Format 表示文件打開(kāi)的方式.其可能的值及含義如下: 
TristateTrue : 以 Unicode 的方式打開(kāi). 
TristateFalse : 以 ASCII 的方式打開(kāi). 
TristateUseDefault : 以系統(tǒng)默認(rèn)的方式打開(kāi). 
該參數(shù)可以省略,缺省時(shí)為 TristateFalse ,即ASCII方式. 
(二).用 TextStream 進(jìn)行文件操作 
  在建立或打開(kāi)了文件之后,就可利用對(duì)象 TextStream 提供的方法進(jìn)行文件的實(shí)際操作了. 
  1.用于寫操作的方法有: 
⑴ Write(string) 
  將由string指定的字符串寫入到文件中. 
⑵ WriteLine(string) 
  在文件中寫入由string指定的字符串,并寫入一個(gè)換行字符. 
  參數(shù)string可以省略,此時(shí)將在文件中插入一個(gè)空行. 
⑶ WriteBlankLines(NumOfLines) 
  在文件中插入若干空行,行數(shù)由 NumOfLines 指定. 
 ?。玻糜谧x操作的方法和屬性方法有: 
⑴ AtEndOfLine 
  該屬性是一個(gè)Boolean值,表示文件指針是否已指向當(dāng)前行的行尾. 
⑵ AtEndOfStream 
  該屬性是一個(gè)Boolean值,表示文件指針是否已指向文件尾. 
⑶ Column 
  該屬性是一個(gè)整數(shù)值,表示文件指針在當(dāng)前行中的位置. 
⑷ Line 
  該屬性是一個(gè)整數(shù)值,表示文件指針?biāo)谛械男刑?hào). 
⑸ Read(NumOfCharacters) 
  該方法從文件當(dāng)前位置開(kāi)始,讀入由NumOfCharacters數(shù)目指定的若干字符,返回一個(gè) 
  字符串. 
⑹ ReadLine 
  該方法從文件當(dāng)前位置開(kāi)始,讀入當(dāng)前行的內(nèi)容直到行尾,返回一個(gè)字符串. 
⑺ ReadAll 
  該方法從當(dāng)前位置開(kāi)始,讀入整個(gè)文件的內(nèi)容直到文件結(jié)束,返回一個(gè)字符串. 
⑻ Skip(NumOfCharacters) 
  該方法從文件當(dāng)前位置開(kāi)始,跳過(guò)由NumOfCharacters數(shù)目指定的若干字符. 
⑼ SKipLine 
  該方法從文件當(dāng)前位置開(kāi)始,跳過(guò)當(dāng)前行的內(nèi)容. 
  3.用于關(guān)閉文件的方法有: 
⑴ Close 
  關(guān)閉已經(jīng)建立或打開(kāi)的文件. 

(三)、下面就以一個(gè)實(shí)例來(lái)說(shuō)明如何使用FSO來(lái)讀取文本文件和如何保存到數(shù)據(jù)庫(kù): 

1、 先創(chuàng)建一個(gè)讀取文件路徑的頁(yè)面: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="導(dǎo)入信息"> 

</div> 

</FORM> 

… 

2、 編寫把獲取到的文本值保存到數(shù)據(jù)庫(kù)代碼: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" ‘調(diào)用存儲(chǔ)過(guò)程 

ObjComm.CommandType=adCmdStoredProc 

Set ObjComm.ActiveConnection=Conn 

''''''''''創(chuàng)建輸入輸出參數(shù)''''''''''''''''' 

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), --城市 

… 

''''''''''創(chuàng)建參數(shù)完畢'''''''''''''''''''' 

%> 

<% 

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) 

'''''''''提取數(shù)據(jù)'''''''''''''''''''''''''''' 

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 

''''''''''將變量加入?yún)?shù)集''''''''''''' 

ObjParamECom.value=strLine1 

ObjParamCCom.value=strLine2 

ObjParamAddr.value=strLine3 

… 

''''''''''操作結(jié)束'''''''''''''''''''' 

ObjComm.Execute() '運(yùn)行命令 

LOOP 

response.write "<br>"+"導(dǎo)入庫(kù)成功!<a href=dolist.html>[繼續(xù)導(dǎo)入]</a><br>" 

set Conn=nothing 

set FSO=nothing 

set ATextStream=nothing 

%> 

附:存儲(chǔ)過(guò)程sp_AddMsg代碼 

CREATE PROCEDURE dbo.sp_AddMsg --導(dǎo)入國(guó)外企業(yè)信息 



@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 

至此,全文內(nèi)容講解結(jié)束,希望這篇文章能給讀者帶來(lái)一定的幫助。

相關(guān)文章

最新評(píng)論