Portada | Monotemáticos | Secciones | Desarrolladores | Comunidad | Servicios | Servicios profesionales | RSS
Desde 0 | HTML | CSS | ASP | PHP | AJAX | Javascript | Diseño web | Promoción web | Ganar dinero
Directorio | Manuales | Scripts | FAQs | Programas | Artículos Copyleft | Actualidad | La Cosecha | Colabora
Registrarse | Vuestras páginas | Foros del web | Lista de correo | Boletín de novedades
Generador METAs | Compras | Busca cursos
Alojamiento | Dominios.es | Micropagos SMS | Buscadores | Patentes, marcas | Creación web | Multimedia | Videos
Desarrollo Freelance | Buscar proyectos | Buscar profesionales | Solicitar desarrollo

Lectura y escritura de archivos en ASP


Explicación y referencia sobre cómo se puede leer y escribir un fichero en ASP.


27/6/01 - En algunas ocasiones es necesario que nuestras aplicaciones realicen acciones de lectura o escritura de ficheros de texto en el servidor.

Por poner un ejemplo, podríamos guardar todos los documentos de los reportajes de nuestro sitio en archivos de texto y desde nuestras páginas ASP podríamos abrir esos archivos de texto y mostrarlos dentro del diseño de nuestro sitio. Esto es una técnica habitual, que utilizamos también en desarrolloweb. Cualquiera que haya programado un poquito conocerá la importancia que tiene el manejo de archivos de texto en programas, de modo que no serán necesarios más ejemplos de usos posibles.

Como estamos en ASP, tenemos que tener en cuenta que los archivos que podemos manipular se encuentran en el servidor, ya que ASP puede tener acceso a los recursos del servidor y no a los del cliente.

Para leer o escribir archivos de texto en el servidor utilizando ASP se ha de crear un objeto File System Object (FSO), que sirve para tener acceso al sistema de archivos del servidor donde están nuestras páginas. Por ahora no hemos hablado mucho del FSO en desarrolloweb.com, pero tenemos pensado hacer una serie de reportajes para tratarlo a fondo. De momento será suficiente que sepamos que para leer o escribir un fichero debemos apoyarnos en el FSO necesariamente. Para crear una conexión con el FSO en nuestras páginas ASP hacemos lo siguiente.

set con_FSO = createObject("scripting.filesystemobject")

En este momento ya tenemos acceso al sistema de archivos a través del File System Object, nuestra variable con_FSO guarda el objeto que realiza la conexión con el sistema de archivos. Ahora debemos crear el objeto TextStream, que será el objeto final que necesitaremos tener para leer o escribir el fichero.

Existen en ASP tres métodos para crear el TexStream que se utilizan en casos distintos, según las acciones que pretendamos realizar con el fichero. Los tres métodos devuelven un objeto TextStream.

CreateTextFile (archivo,sobreescribe,unicode)
Este método creará un fichero en nuestro sistema de archivos y devolverá un objeto TextStream, que es el que utilizaremos para movernos por el fichero, leer o escribir. El parámetro archivo es para indicar la ruta del sistema de archivos del servidor donde se creará el fichero. Los otros dos parámetros son opcionales. Cuando está a true sobrescribe, indica que si había un archivo con ese nombre se sobrescribe. Cuando unicode está a true se indica que el archivo se debe crear con juego de caracteres unicode.

OpenTextFile (archivo,tipo_acceso,crear,formato)
Con este método abrimos un archivo de texto para leer o escribir y nos devuelve el objeto TextStream necesario para realizar las acciones sobre el fichero. El parámetro archivo indica la ruta del fichero a crear. El parámetro tipo_acceso es opcional, indica el tipo de acceso que vamos a realizar, por defecto se abre para lectura, ForReading (1), también podemos abrirlo para escritura ForWriting (2) y para añadir ForAppending (8). Con el parámetro crear, también opcional, se indica si se debe crear el fichero en caso de que no exista, por defecto no se crea. Por último, formato nos sirve para indicar el formato del fichero, ASCII es el predeterminado.

OpenAsTextStream (tipo_acceso,formato)
Es el tercer método para obtener un TextStream, la diferencia es que se aplica a el objeto File (fichero) que no hemos visto, en lugar del objeto FileSystemObject.


Si queremos crear un objeto TextStream a partir de un FSO necesitamos utilizar uno de los dos primeros métodos, siendo el tercero útil para crear un TexStream a partir de un objeto File.

El objeto TextStream

Como hemos señalado, es el que se utilizamos para movernos por el fichero y realizar las acciones sobre el texto, enfocadas a la lectura o escritura. Tiene las siguientes propiedades.

AtEndOfLine vale true si nos encontramos al final de la línea en el fichero.
AtEndOfStream vale true si estamos al final del fichero.
Colum guarda el valor de la columna del carácter actual en el que estamos situados dentro del fichero.
Line guarda el valor de la línea actual.


Los métodos del objeto son los siguientes.

Close() cierra el fichero. Necesario una vez acabado el trabajo.
Read(numero) devuelve un numero de caracteres del fichero.
ReadAll() lee todo el fichero y lo devuelve.
ReadLine() lee una línea entera.
Skip(numero) pasa un numero de caracteres dado.
SkipLine() salta una línea.
Write(texto) escribe un texto dado dentro del fichero
WriteLine(texto) escribe un texto y coloca al fina un salto de línea.
WriteBlankLines(numero) coloca un numero dado de saltos de línea.


Estas notas servirán seguro como buena referencia para realizar cualquier tipo de acción sobre ficheros, pero antes de acabar vamos a ver un ejemplo completo de trabajo con ficheros. Vamos a hacer un pequeño script que crea un fichero y escribe los números del 0 al 9. Luego cerraremos el fichero y lo volveremos a abrir para lectura para sacar su contenido en la página web.

<%
'creamos el nombre del archivo
archivo= request.serverVariables("APPL_PHYSICAL_PATH") & "pruebas.txt"

'conectamos con el FSO
set confile = createObject("scripting.filesystemobject")

'creamos el objeto TextStream
set fich = confile.CreateTextFile(archivo)

'escribimos los números del 0 al 9
for i=0 to 9
   fich.write(i)
next

'cerramos el fichero
fich.close()

'volvemos a abrir el fichero para lectura
set fich = confile.OpenTextFile(archivo)

'leemos el contenido del fichero
texto_fichero = fich.readAll()

'imprimimos en la página el contenido del fichero
response.write(texto_fichero)

'cerramos el fichero
fich.close()
%>


En la primera línea del código creamos el nombre del archivo. El nombre del archivo es una variable cadena que contiene la ruta absoluta del archivo en el sistema del servidor. Como probablemente ocurra en vuestro alojamiento ASP, vosotros no sabéis en qué directorio y disco del servidor están alojadas vuestras páginas (a no ser que seáis vosotros los administradores o estéis trabajando en local). Si es así, necesitaréis algún mecanismo para obtener la ruta donde están vuestros archivos y donde tenéis permisos de lectura y escritura. Con el método
request.serverVariables("APPL_PHYSICAL_PATH") obtenemos la ruta física donde están nuestras páginas. A este camino le concatenamos el nombre del archivo que deseamos crear y ya tenemos el la ruta completa del archivo.

El resto de líneas se pueden entender bien con los comentarios y las notas de arriba en este artículo.

Es importante señalar que para leer y escribir en vuestros directorios necesitaréis los correspondientes permisos de lectura y escritura. Si estáis haciendo pruebas en un sistema Windows95 no necesitaréis permisos, ya que ese sistema no los implementa. En servidores un poco más serios como los que tendrá vuestro proveedor de alojamiento necesitaréis que os otorguen permisos a los directorios donde vayáis a escribir ficheros. Los permisos de lectura suelen estar otorgados desde el principio.

Eso es todo por ahora, esperemos que este artículo sea bien útil para resolver vuestras dudas con el tratamiento de ficheros de texto en ASP.

 Seguir navegando a partir aquí:
+ 1 manual relacionado
+ 1 categoria relacionada
+ 5 comentarios (Añadir)
+ 3 comentarios no revisados

 Autoría, licencia y acciones sobre este artículo

Informe de Miguel Angel Alvarez*
Director de DesarrolloWeb.com

Atención: Contenido exclusivo de DesarrolloWeb.com. No reproducir. Copyright.

* Para consultas técnicas utilizar la lista de correo.

Versión imprimible Versión imprimible del artículo
Enviar artículo por e-mail Enviar artículo por e-mail
Añadir un comentario al artículo Publicar un comentario del artículo

Manuales relacionados con este artículo
Dentro de Taller de ASP

Categorias relacionadas
A través de las categorías de nuestro directorio se pueden encontrar otro tipo de recursos relacionados con este artículo:
+ Entrar en Scripts en ASP


 Comentarios de los visitantes
Los comentarios de los visitantes son para ampliar la información del artículo. Cualquiera puede participar.
Se muestran 5 comentarios revisados

 Comentario de Mario José Méndez Tapia
30/10/02 
Este contenido me sirvio, fue de gran ayuda, ya que estaba desarrollando una pagina donde necesitaba crear un archivo.rtf donde guardar un contenido desde ASP y este codigo me ayudó.
Gracias.

 Comentario de Oscar
19/3/04 
En la línea donde hago el set confile:

set confile = createObject("scripting.filesystemobject")

ma da el error de compilación:

BC30807: No se admiten instrucciones de asignación 'Let' y 'Set'.

Este código no es válido para asp.net?

RESPUESTA

Este código es de ASP 3.0. No tiene porque funcionar en ASP.NET.


 Comentario de www.aivan.tk
27/4/04 
He probado las funciones especificada, funcionan perfectamente. Gracias por vuestros manuales, son una joya!!

 Comentario de bernat
22/3/05 
Hola! Me gustaría saber si teneis info sobre cómo borrar ficheros del servidor en ASP.

Estoy con el deleteFile de FileSystemObject y me dá error de "permiso denegado"!

RESPUESTA

Mira si tienes los permisos para hacer el borrado del archivo. También consulta si esta operación está permitida, si es que estás alojando las páginas en un proveedor de hosting cuyo servidor no administres.


 Comentario de arioch
19/1/07 
Para corregir el error CTL_E_PERMISSIONDENIED basta con dar permisos los usuarios en el servidor. Ver permisos de IIS.

Para los demás: demasiadas dudas para contestar...
Los foros funcionan así:
creación de 1 tema,
desarrollo de ESE tema. (puede derivar a otro, en este caso el webmaster que cree otro hilo o filtre!)

punto pelota!

Cada duda en su sitio. Vamos señores que luego no encontramos nada!

Añadir un comentario al artículo Añadir un comentario del artículo
 Comentarios sin revisar
Entre los comentarios no revisados puede haber algunos interesantes que se hayan enviado recientemente.
 Se han encontrado 3 comentarios sin revisar

Ver el comentario no revisadoVer los comentarios no revisados
Añadir un comentario al artículo Añadir un comentario del artículo



Enlaces:
Maestrosdelweb
  Ir arriba

Manuales relacionados
+Taller de ASP
Categorías
+Scripts en ASP

Lectura recomendada

Compra este libro en Agapea, la librería urgente a domicilio.

Tienda DesarrolloWeb

DesarrolloWeb.com | Copyright | Anunciese | Acerca de | Datos legales | Contacta | Por GuiarteMultimedia