[Indice]


El método Server.CreateObject

Server.CreateObject("Scripting.FileSystemObject")

Otros objetos muy interesantes que pueden crearse con Server.CreateObject() son los de acceso a archivos de texto. En el siguiente ejemplo se crean dos objetos: La segunda instrucción creará, en modo escritura, el fichero texto.txt en la ruta especificada, y lo borrará creándolo de nuevo, si ya existe.

<%
Set FS = Server.CreateObject("Scripting.FileSystemObject")
Set Fichero = FS.CreateTextFile("C:\ASP\texto.txt", True)
%>

El parámetro True es opcional. Indica si un archivo existente se quiere sobrescribir. El valor debe ser True si el archivo se quiere crear nuevo; False si, existiendo, no se quiere sobrescribir. Si se omite y el fichero existe, no se borra, ya que el valor por defecto es False, pero ASP dará un mensaje de error, ya que el objeto es de creación de un nuevo fichero, cosa que no puede hacer.

Ahora, para escribir una línea en texto.txt simplemente escribiremos:

<%
Fichero.WriteLine("Esto es una prueba de escritura")
%>

Si lo que se desea es abrir el fichero, en modo lectura, ya existente y previamente cerrado, se escribirá:

<%
Set FS = Server.CreateObject("Scripting.FileSystemObject")
Set Fichero = FS.OpenTextFile("C:\ASP\texto.txt", False)
%>

Y para leer la primera línea:

<%
Response.Write(Fichero.ReadLine)
%>

Hasta aquí verás que podemos crear un fichero nuevo o leer uno ya existente, pero, ¿qué hacer si tenemos que anexar nuevas líneas a un fichero que ya tiene contenidos? La solución la tenemos en el método OpenAsTextStream, que proporciona las mismas funcionalidades que OpenTextFile, pero además permite anexar (append) nuevas líneas sin borrar el fichero ya existente ni su contenido. Previamente habrá que definir algunas constantes para poder realizar las tres operaciones básicas con el fichero:

<%
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Const TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0

Set FS = Server.CreateObject("Scripting.FileSystemObject")
Set Fichero = FS.GetFile("C:\ASP\texto.txt")
Set TS = Fichero.OpenAsTextStream(ForAppending, TristateUseDefault)
%>

Y para escribir una línea en texto.txt añadiéndola a las que ya contenga:

<%
TS.Write("Esto es un segundo registro sin borrar el primero" & vbCrLf)
%>

La constante vbCrLf se encarga de escribir un retorno de carro al final de la línea.

El primer parámetros del método OpenAsTextStream es el modo de apertura, y puede ser:

El segundo parámetro se refiere al formato del fichero. Si se omite, el archivo se abre como ASCII. Puede ser:

Tanto si se ha abierto el fichero en modo lectura como en escritura, al concluir su procesado se cerrarán el objeto TS:

<%
TS.Close
Set TS = Nothing
%>

Close es en realidad un método, y se encarga de vaciar el buffer y de cerrar el fichero. Después la instrucción Nothing indica al sistema que el objeto ya no está vinculado a ninguna variable, por lo que sus recursos pueden ser recuperados.

Al igual que los objetos RecordSet, los objetos TextStream (en nuestro ejemplo Fichero) también tienen varias propiedades y métodos para moverse por el fichero texto.txt, pero a diferencia de los RecordSet, no es posible moverse hacia atrás. Los ficheros de texto creados con el objeto TextStream son, por tanto, de acceso secuencial. Veamos las propiedades, que son todas de sólo lectura, es decir que sólo pueden utilizarse si el fichero ha sido abierto en modo lectura
( FS.OpenTextFile("C:\ASP\texto.txt", False ):

Y a continuación veamos los métodos:

[Indice]