WEB アプリケーションを開発する場合、ドライブ関連の情報の収集、フォルダーやファイルの作成、追加、移動、削除など、ファイル システム内のドライブ、フォルダー、ファイルを処理する必要があることがよくあります。 VB6 では、ファイル システムにアクセスするために、FSO (File System Object) と呼ばれる新しいオブジェクト モデルが提供されています。このモデルはオブジェクトベースのツールを提供し、それが提供する一連のプロパティとメソッドを通じて、アプリケーションでファイル システム上でさまざまな操作をより簡単かつ柔軟に実行できます。
1. FSO の概要 FSO オブジェクト モデルには次のオブジェクトが含まれます。
ドライブ オブジェクト: システムに物理的に接続されている、または LAN 経由でシステムに論理的に接続されているハードディスクや CD-ROM などのドライブの空き容量や共有名などの情報を収集できます。
フォルダー オブジェクト: フォルダーを作成、削除、または移動し、システムにフォルダーの名前、パスなどを問い合わせることができます。
ファイル オブジェクト: ファイルを作成、削除、移動したり、システムにファイル名やパスなどを問い合わせたりすることができます。
TextStream オブジェクト: テキスト ファイルの作成、読み取り、書き込みを可能にします。
FileSystemObject オブジェクト: ドライブ、フォルダー、およびファイル操作のためのメソッドの完全なセットを提供します。機能的には、上記のオブジェクトのコレクションと見なすことができ、多くの場合、それらと組み合わせて使用されます。このオブジェクトに関連付けられたメソッドの多くは、前の 4 つのオブジェクトのメソッドと重複しているため、FileSystemObject オブジェクト、または対応するドライブ、フォルダー、またはファイル オブジェクトの操作を通じて、ドライブ、フォルダー、およびファイルに対するほとんどの操作を実行できます。 FSO モデルは、同じオブジェクトに対する操作を 2 つのメソッドで実装しており、操作の効果は同じです。この冗長機能を提供する目的は、プログラミングの柔軟性を最大限に高めることです。
この記事では、FSO オブジェクト モデルの TextStream オブジェクトを使用したテキスト ファイルの操作について説明します。
(1) FileSystemObjectを使用してテキストファイルオブジェクト1を取得します。 FileSystemObject オブジェクト インスタンスの作成 ファイル操作を実行するには、まず FileSystemObject オブジェクト インスタンスを作成して、ファイルを作成または開く必要があります。 FileSystemObject オブジェクト インスタンスを作成するための具体的な形式は、例として次のとおりです (AFileSystemObject を使用します)。
Set AFileSystemObject = CreateObject("Scripting.FileSystemObject")
2. FileSystemObject を使用してテキスト ファイル オブジェクト TextStream を取得します。
FileSystemObject には、テキスト ファイル オブジェクト TextStream を取得するための 2 つのメソッドが用意されており、そのうちの CreateTextFile はファイルの作成に使用され、OpenTextFile は既存のファイルを開くために使用されます。このオブジェクトは、ファイルに対する特定の操作で使用できます。実行される。
⑴新しいファイルを作成します。新しいファイルを作成する方法の具体的な形式は次のとおりです (AFileSystemObject を例にします)。
AFilesystemObject.CreateTextFile(NewFileName,OverwriteExistingFile,IsUnicode)
で:
NewFileName は、作成するファイルの名前を指定する文字列値です。通常は、C:webshareaspsampfiletest.txt のように、ファイルの実際のパスにファイル名を加えたものです。
OverwriteExistingFile は、同じ名前のファイルが存在する場合に元のファイルを上書きするかどうかを示すブール値です。このパラメータは省略できます。デフォルトは False で、元のファイルは上書きされません。
IsUnicode は、作成されるファイルが ASCII ファイルであるか Unicode ファイルであるかを示すブール値です。
このパラメータは省略できます。デフォルトは False で、ASCII ファイルになります。
⑵ 既存のファイルを開きます。 既存のファイルを開くメソッドの具体的な形式は次のとおりです (AFileSystemObject を例にします)。
AFilesystemObject.OpenTextFile(FileName,IOMode,create,format)
で:
FileName は、開くファイルの名前を指定する文字列値です。通常は、ファイルの実際のパスとファイル名を加えたものです (C:filepathtest.txt)。
IOMode はファイルを開く目的を示す定数値で、ForReading(1) はデータの読み取りを意味します。
ForAppending は、データを追加するために使用されることを意味します。このパラメータは省略可能で、デフォルトは ForReading です。
Create は、開かれるファイルが存在しない場合に新しいファイルを作成するかどうかを示すブール値です。
このパラメータは省略できます。デフォルトは False で、新しいファイルは作成されません。
形式はファイルを開く方法を表します。考えられる値と意味は次のとおりです。
TristateTrue: Unicode モードで開きます。
TristateFalse: ASCII モードで開きます。
TristateUseDefault: システムのデフォルト モードで開きます。
このパラメータは省略できます。デフォルトは TristateFalse (ASCII モード) です。
(二)。ファイル操作での TextStream の使用 ファイルを作成または開いた後、オブジェクト TextStream によって提供されるメソッドを使用して、実際のファイル操作を実行できます。
1.書き込み操作に使用されるメソッドは次のとおりです。
⑴書き込み(文字列)
string で指定された文字列をファイルに書き込みます。
⑵WriteLine(文字列)
string で指定された文字列をファイルに書き込み、改行文字を書き込みます。
パラメータ文字列は省略できます。その場合、ファイルに空行が挿入されます。
⑶空白行の書き込み(行数)
ファイルに空白行を挿入します。行数は NumOfLines で指定されます。
2.読み取り操作に使用されるメソッドと属性メソッドは次のとおりです。
⑴ライン終了時
この属性は、ファイル ポインターが現在の行の末尾を指しているかどうかを示すブール値です。
⑵ストリームの終わりで
この属性は、ファイル ポインターがファイルの終わりを指しているかどうかを示すブール値です。
⑶ コラム
この属性は、現在の行内のファイル ポインターの位置を表す整数値です。
⑷ライン
この属性は、ファイル ポインターが配置されている行の行番号を表す整数値です。
⑸ 読み取り(文字数)
このメソッドは、ファイルの現在位置から開始し、NumOfCharacters の数で指定された数の文字を読み取り、文字列を返します。
⑹ReadLine
このメソッドは、ファイルの現在位置から開始して、現在の行の内容を行末まで読み取り、文字列を返します。
⑺すべて読む
このメソッドは、現在位置から開始して、ファイル全体の内容をファイルの終わりまで読み取り、文字列を返します。
⑻スキップ(文字数)
このメソッドは、ファイルの現在位置から開始し、NumOfCharacters 数値で指定された数の文字をスキップします。
⑼スキップライン
このメソッドは、ファイルの現在位置から開始し、現在の行の内容をスキップします。
3.ファイルを閉じるために使用されるメソッドは次のとおりです。
⑴ 閉じる
すでに作成されているファイルまたは開いているファイルを閉じます。
(3) 以下は、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
<%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), --City
...
'''''''''' パラメーターの作成が完了しました'''''''''' '''''' ''
%>
<%
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)
''''''''データの抽出'''''''''''''''' '''' ''''
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
この時点での説明全文は次のとおりです。以上、この記事が読者に何らかの助けになれば幸いです。