Bei der Entwicklung von WEB-Anwendungen müssen wir häufig Laufwerke, Ordner und Dateien im Dateisystem verarbeiten, z. B. laufwerksbezogene Informationen sammeln, Ordner und Dateien erstellen, hinzufügen, verschieben oder löschen usw. In VB6 wird ein neues Objektmodell namens FSO (File System Object) für den Zugriff auf das Dateisystem bereitgestellt. Dieses Modell stellt ein objektbasiertes Tool bereit. Durch eine Reihe von Eigenschaften und Methoden können wir in der Anwendung verschiedene Vorgänge am Dateisystem einfacher und flexibler ausführen.
1. Einführung in FSO Das FSO-Objektmodell umfasst die folgenden Objekte:
Laufwerksobjekt: Ermöglicht die Erfassung von Informationen wie verfügbarem Speicherplatz und Freigabenamen von Laufwerken wie Festplatten und CD-ROMs, die physisch mit dem System oder logisch über LAN mit dem System verbunden sind.
Ordnerobjekt: Ermöglicht das Erstellen, Löschen oder Verschieben von Ordnern und die Abfrage des Namens, Pfads usw. des Ordners beim System.
Dateiobjekt: Ermöglicht das Erstellen, Löschen oder Verschieben von Dateien sowie die Abfrage des Systems nach Dateinamen, Pfaden usw.
TextStream-Objekt: Ermöglicht das Erstellen, Lesen und Schreiben von Textdateien.
FileSystemObject-Objekt: Bietet einen vollständigen Satz von Methoden für Laufwerks-, Ordner- und Dateioperationen. Funktionell kann es als Sammlung der oben genannten Objekte betrachtet werden und wird häufig in Verbindung mit diesen verwendet. Viele der diesem Objekt zugeordneten Methoden duplizieren die der vorherigen vier Objekte, sodass wir die meisten Vorgänge an Laufwerken, Ordnern und Dateien entweder über das FileSystemObject-Objekt oder über das entsprechende Laufwerk, Ordner oder Dateiobjekt ausführen können. Das FSO-Modell implementiert Operationen für dasselbe Objekt über zwei Methoden, und die Operationseffekte sind die gleichen. Der Zweck der Bereitstellung dieser redundanten Funktion besteht darin, maximale Programmierflexibilität zu erreichen.
In diesem Artikel erklären wir die Funktionsweise von Textdateien mithilfe des TextStream-Objekts des FSO-Objektmodells.
(1) Verwenden Sie FileSystemObject, um Textdateiobjekte abzurufen 1. Erstellen einer FileSystemObject-Objektinstanz Um Dateivorgänge auszuführen, müssen Sie zunächst eine FileSystemObject-Objektinstanz erstellen, um eine Datei zu erstellen oder zu öffnen. Das spezifische Format zum Erstellen einer FileSystemObject-Objektinstanz ist (am Beispiel von AFileSystemObject):
Setze AFileSystemObject = CreateObject("Scripting.FileSystemObject")
2. Verwenden Sie FileSystemObject, um das Textdateiobjekt TextStream abzurufen
FileSystemObject bietet zwei Methoden zum Abrufen von Textdateiobjekten, darunter „CreateTextFile“ zum Erstellen von Dateien und „OpenTextFile“ zum Öffnen vorhandener Dateien. Das Rückgabeergebnis beider Methoden ist eine Instanz des TextStream-Objekts. Verwenden Sie dieses Objekt durchgeführt werden.
⑴Erstellen Sie eine neue Datei. Das spezifische Format der Methode zum Erstellen einer neuen Datei ist (nehmen Sie AFileSystemObject als Beispiel):
AFilesystemObject.CreateTextFile(NewFileName,OverwriteExistingFile,IsUnicode)
In:
NewFileName ist ein Zeichenfolgenwert, der den Namen der zu erstellenden Datei angibt, normalerweise den tatsächlichen Pfad der Datei plus den Dateinamen, z. B. C:webshareaspsampfiletest.txt
OverwriteExistingFile ist ein boolescher Wert, der angibt, ob die Originaldatei überschrieben werden soll, wenn eine Datei mit demselben Namen vorhanden ist. Dieser Parameter kann weggelassen werden und der Standardwert ist False, was bedeutet, dass die Originaldatei nicht überschrieben wird.
IsUnicode ist ein boolescher Wert, der angibt, ob die zu erstellende Datei eine ASCII-Datei oder eine Unicode-Datei ist.
Dieser Parameter kann weggelassen werden und der Standardwert ist False, eine ASCII-Datei.
⑵ Öffnen Sie eine vorhandene Datei. Das spezifische Format der Methode zum Öffnen einer vorhandenen Datei ist (nehmen Sie AFileSystemObject als Beispiel):
AFilesystemObject.OpenTextFile(FileName,IOMode,create,format)
In:
FileName ist ein Zeichenfolgenwert, der den Namen der zu öffnenden Datei angibt, normalerweise den tatsächlichen Pfad der Datei plus den Dateinamen C:filepathtest.txt
IOMode ist ein konstanter Wert, der den Zweck des Öffnens der Datei angibt, und ForReading(1) bedeutet das Lesen von Daten;
ForAppending bedeutet, dass Daten hinzugefügt werden. Dieser Parameter kann weggelassen werden und der Standardwert ist ForReading.
Create ist ein boolescher Wert, der angibt, ob eine neue Datei erstellt werden soll, wenn die zu öffnende Datei nicht vorhanden ist.
Dieser Parameter kann weggelassen werden und der Standardwert ist False, was bedeutet, dass keine neue Datei erstellt wird.
Das Format stellt die Art und Weise dar, wie die Datei geöffnet wird. Seine möglichen Werte und Bedeutungen sind wie folgt:
TristateTrue: Im Unicode-Modus öffnen.
TristateFalse: Im ASCII-Modus öffnen.
TristateUseDefault: Im Systemstandardmodus öffnen.
Dieser Parameter kann weggelassen werden und der Standardwert ist TristateFalse, was dem ASCII-Modus entspricht.
(zwei). Verwenden von TextStream für Dateioperationen Nach dem Erstellen oder Öffnen einer Datei können Sie die vom Objekt TextStream bereitgestellten Methoden verwenden, um tatsächliche Dateioperationen auszuführen.
1. Die für Schreiboperationen verwendeten Methoden sind:
⑴Write(string)
Schreibt die durch string angegebene Zeichenfolge in die Datei.
⑵WriteLine(string)
Schreibt die durch string angegebene Zeichenfolge in die Datei und schreibt ein Zeilenumbruchzeichen.
Die Parameterzeichenfolge kann weggelassen werden. In diesem Fall wird eine Leerzeile in die Datei eingefügt.
⑶WriteBlankLines(NumOfLines)
Fügen Sie eine Anzahl Leerzeilen in die Datei ein. Die Anzahl der Zeilen wird durch NumOfLines angegeben.
2. Die für Lesevorgänge verwendeten Methoden und Attributmethoden sind:
⑴AtEndOfLine
Dieses Attribut ist ein boolescher Wert, der angibt, ob der Dateizeiger auf das Ende der aktuellen Zeile zeigt.
⑵AtEndOfStream
Dieses Attribut ist ein boolescher Wert, der angibt, ob der Dateizeiger auf das Ende der Datei zeigt.
⑶ Spalte
Dieses Attribut ist ein ganzzahliger Wert, der die Position des Dateizeigers in der aktuellen Zeile darstellt.
⑷Linie
Dieses Attribut ist ein ganzzahliger Wert, der die Zeilennummer der Zeile darstellt, in der sich der Dateizeiger befindet.
⑸ Lesen(NumOfCharacters)
Diese Methode beginnt an der aktuellen Position der Datei, liest eine durch die Anzahl von NumOfCharacters angegebene Anzahl von Zeichen ein und gibt eine Zeichenfolge zurück.
⑹ReadLine
Diese Methode beginnt an der aktuellen Position der Datei, liest den Inhalt der aktuellen Zeile bis zum Ende der Zeile und gibt eine Zeichenfolge zurück.
⑺Alles lesen
Diese Methode beginnt an der aktuellen Position, liest den Inhalt der gesamten Datei bis zum Ende der Datei und gibt eine Zeichenfolge zurück.
⑻ Überspringen(NumOfCharacters)
Diese Methode beginnt an der aktuellen Position der Datei und überspringt eine durch die NumOfCharacters-Zahl angegebene Anzahl von Zeichen.
⑼ SKipLine
Diese Methode beginnt an der aktuellen Position der Datei und überspringt den Inhalt der aktuellen Zeile.
3. Die zum Schließen von Dateien verwendeten Methoden sind:
⑴ Schließen
Schließen Sie bereits erstellte oder geöffnete Dateien.
(3) Das Folgende ist ein Beispiel, um zu veranschaulichen, wie Sie mit FSO Textdateien lesen und in der Datenbank speichern:
1. Erstellen Sie zunächst eine Seite zum Lesen des Dateipfads: 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="Import information">
</div>
</FORM>
…
2. Schreiben Sie den Code, um den erhaltenen Textwert in der Datenbank zu speichern: 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" 'Gespeicherte Prozedur aufrufen
ObjComm.CommandType=adCmdStoredProc
Set ObjComm.ActiveConnection=Conn
''''''''''Eingabe erstellen und Ausgabeparameter'''' ''''''''''''
Set ObjParamECom=ObjComm.CreateParameter("WC_ECompanyName",adVarchar,adParamInput,100)
ObjComm.Parameters.Append ObjParamECom
'@in_ECompanyName Varchar(50), --Company Englischer Name
Set ObjParamAddr=ObjComm.CreateParameter("WC_Address",adVarchar,adParamInput,200)
ObjComm.Parameters.Append ObjParamAddr
'@in_Address Varchar(50), --Company-Adresse
Set ObjParamCity=ObjComm.CreateParameter("WC_City" ,adVarchar,adParamInput, 100)
ObjComm.Parameters.Append ObjParamCity
'@in_City Varchar(50), --City
...
'''''''''' Parametererstellung abgeschlossen'''''''''' '''''' '''
%>
<%
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)
'''''''''Daten extrahieren'''''''''''''''' '''' ''''
DO WHILE NOT ATextStream.AtEndOfStream
''''''Variablen initialisieren''''''''''''
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
''''''''''Füge die Variable dem Parametersatz hinzu'''''' '' ''''''
ObjParamECom.value=strLine1
ObjParamCCom.value=strLine2
ObjParamAddr.value=strLine3
...
''''''''''Operation endet''''''''''' ''' '''
ObjComm.Execute() 'Befehl
LOOP
Response.write "<br>"+"Bibliothek erfolgreich importieren! <a href=dolist.html>[Import fortsetzen]</a><br>"
set Conn=nothing
set FSO=nothing
set ATextStream=nothing
%>
Anhang: Gespeicherte Prozedur sp_AddMsg-Code
CREATE PROCEDURE dbo.sp_AddMsg – Ausländische Unternehmen importieren Information
(
@in_CompanyName Varchar(100), --Company name
@in_Address Varchar(200), --Company address
@in_City Varchar(100), --Company city
...
)
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
An dieser Stelle finden Sie die vollständige Texterklärung Ich hoffe, dieser Artikel kann den Lesern helfen.