Foros del Web » Programando para Internet » ASP Clásico »

Otra vez los dichosos TXT

Estas en el tema de Otra vez los dichosos TXT en el foro de ASP Clásico en Foros del Web. Bueno, estoy intentando leer un archivo TXT que está en el servidor. Utilizo esto. Código: <% nombre=RS("archivo") Response.Write(nombre&"<br>")'Compruebo el nombre y es correcto ruta=Server.MapPath("./"&nombre) Response.Write(ruta&"<br>")'Compruebo ...
  #1 (permalink)  
Antiguo 26/06/2003, 07:26
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 7 meses
Puntos: 4
Otra vez los dichosos TXT

Bueno, estoy intentando leer un archivo TXT que está en el servidor. Utilizo esto.

Código:
<%
nombre=RS("archivo")
Response.Write(nombre&"<br>")'Compruebo el nombre y es correcto
ruta=Server.MapPath("./"&nombre)
Response.Write(ruta&"<br>")'Compruebo la ruta completa y es correcta
SET FSO = Server.CreateObject("Scripting.FileSystemObject")
SET archivo = FSO.OpenTextFile(Server.MapPath("./"&nombre),1)
DO UNTIL archivo.AtEndOfStream
Response.Write archivo.ReadLine & "<br>"
LOOP
archivo.Close
SET archivo = nothing
%>
De esta manera me sale un error de Permiso denegado, sin embargo si cambio la línea en negrita por esta otra

Código:
SET archivo = FSO.OpenTextFile(Server.MapPath("becas26_06_03.txt"),1)
No da ningún error y muestra el contenido del archivo sin mayores problemas.

Si alguien me pudiera hechar una mano se lo agradecería mucho.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #2 (permalink)  
Antiguo 26/06/2003, 07:48
Avatar de Cauchemar  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 137
Antigüedad: 21 años
Puntos: 0
igual es una pregunta tonta...

pero para que pones "./" ?
__________________
La utopía está en el horizonte: cuando yo camino dos pasos ella se aleja dos pasos. Yo camino diez pasos y ella está diez pasos más lejos ¿Para qué sirve la utopía?. Sirve para eso: para caminar.
  #3 (permalink)  
Antiguo 26/06/2003, 07:55
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 7 meses
Puntos: 4
No, no es ninguna pregunta tonta. He probado miles de combinaciones posibles, o al menos las que yo sé o se me han ocurrido y no sale de ninguna de las maneras.

Cuando hago una consulta a una base de datos y uso Server.MapPath suelo hacerlo así:

Server.MapPath("./DB/novedades.mdb")

Y nunca he tenido problemas.

Hasta he probado a convertir nombre en cadena por si acaso

nombre=CStr(nombre) pero no ha habido manera, deba error, en este caso diferente, pero error igualmente.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #4 (permalink)  
Antiguo 26/06/2003, 08:03
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 22 años, 4 meses
Puntos: 1
Tienes un problema de concepto con los directorios.
Server.mappath se refiere al directorio donde se esta ejecutando el script actual.
Cada vez que pones ../ lo que haces es subir un directorio.
Juega con eso para localizar el directorio donde se encuentra el fichero.
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #5 (permalink)  
Antiguo 26/06/2003, 08:04
Avatar de Cauchemar  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 137
Antigüedad: 21 años
Puntos: 0
a ver...

esto te funciona?

ruta=Server.MapPath("./"&nombre)


y por que no haces

SET archivo = FSO.OpenTextFile(ruta,1)

? o tampoco va...

yo tengo una pagina hecha pa esto.. si quieres te la mando (e mu grande pa de pegar aqui)
__________________
La utopía está en el horizonte: cuando yo camino dos pasos ella se aleja dos pasos. Yo camino diez pasos y ella está diez pasos más lejos ¿Para qué sirve la utopía?. Sirve para eso: para caminar.
  #6 (permalink)  
Antiguo 26/06/2003, 08:08
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 7 meses
Puntos: 4
Primera respuesta para maestro.

Fíjate que he puesto ./ y no ../

Ahora te respondo a tí Cauchemar
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #7 (permalink)  
Antiguo 26/06/2003, 08:18
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 7 meses
Puntos: 4
SET archivo = FSO.OpenTextFile(Server.MapPath("./"&nombre),1)

Permiso denegado

nombre=RS("archivo")
ruta=Server.MapPath("./"&nombre)
SET FSO = Server.CreateObject("Scripting.FileSystemObject")
SET archivo = FSO.OpenTextFile(ruta,1)

Permiso denegado

SET archivo = FSO.OpenTextFile(Server.MapPath(RS("archivo")),1)

No coinciden los tipos: 'MapPath'

SET archivo = FSO.OpenTextFile(Server.MapPath(""&nombre&""),1)

Se debe especificar el parámetro Path para el método MapPath.

SET archivo = FSO.OpenTextFile(Server.MapPath("'"&nombre&"'"),1)

Archivo no encontrado

SET archivo = FSO.OpenTextFile(Server.MapPath(&RS("archivo")&),1 )

Error de sintaxis

......

¿Habrá mas opciones?
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #8 (permalink)  
Antiguo 26/06/2003, 10:55
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 23 años, 3 meses
Puntos: 535
probá de hacer un response.write del server.mappath (de todas las combinaciones que buscaste =) y fijate que realmente coincida con la ubicación del archivo en disco
__________________
...___...
  #9 (permalink)  
Antiguo 26/06/2003, 12:08
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 7 meses
Puntos: 4
Perdonadme los tres, pero esta es una de esas situaciones en las que se supone que lo haces todo bien pero hay algo que se te escapa y que lo estropea todo.

Y sabéis qué es ese algo..... TACHÁN.... los permisos de escritura.
Le he dado permisos de escritura a la carpeta donde estaba el TXT y de maravilla, vamos, como la seda.

Pero ahora yo me pregunto, pero si yo no quería escribir en el archivo, sólo leerlo. Y aún más, si poniendo el nombre del archivo directamente, sin sacarlo de la base de datos, funcionaba, es que no necesitaba más permisos para leer. Además, y a lo mejor aquí está el grave error, ponía esto

SET archivo = FSO.OpenTextFile(Server.MapPath("./"&nombre),1 )

Se supone que ese 1 es para abrirlo en modo de sólo lectura ¿no?

No he tenido nunca problemas para abrir, leer e incluso escribir en bases de datos teniendo sólo el permiso de Lectura del IIS 5 bajo XP.

¿A qué se puede deber entonces lo que me ha pasado?

Un saludo.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #10 (permalink)  
Antiguo 26/06/2003, 12:13
Avatar de Cauchemar  
Fecha de Ingreso: junio-2003
Ubicación: Madrid
Mensajes: 137
Antigüedad: 21 años
Puntos: 0
Y nosotros rompiendonos la cabeza :P

pero si.. si no recuerdo mal (cosa harto facil, esta edad mia) el 1 es para lectura

Y me temo que tiene pinta de ser uno de esos expedientes X de la vida y del amor

igual tenia que hacer un temporal, o igual llovian el cuenca.. vaya usted a saber
__________________
La utopía está en el horizonte: cuando yo camino dos pasos ella se aleja dos pasos. Yo camino diez pasos y ella está diez pasos más lejos ¿Para qué sirve la utopía?. Sirve para eso: para caminar.
  #11 (permalink)  
Antiguo 26/06/2003, 12:25
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 7 meses
Puntos: 4
AGGGGGG. .. ¿Expedientes X dices? Yo más bien diría XXXXXX. Esto es la monda lironda, o sea, un producto lácteo, o sea, la LECHE.

Yo inocentemente entro en en mi IIS, me voy a la carpetita en cuestión, le doy a propiedades, quito los permisos de escritura dejando sólo los de lectura, le doy a aceptar y... si sigue funcionando. ¡Esto no puede ser!
Elimino los archivos temporales, el historial al completo y... si sigue funcionando. La repera, vamos.

Bueno, pues aquí os dejo el código final, !hala¡ por si os sirve de algo, aunque solo sea para c____ __ __ ________rio.

Código:
<%
nombre = RS("archivo")
SET FSO = Server.CreateObject("Scripting.FileSystemObject")
SET archivo = FSO.OpenTextFile(Server.MapPath("./"&nombre&""),1)
DO UNTIL archivo.AtEndOfStream
Response.Write archivo.ReadLine & "<br>"
LOOP
archivo.Close
SET archivo = nothing
%>
Bueno, todo un honor hablar con ustedes.
Señoras y señores, si me lo permiten, me vuelvo a mi cripta.
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:38.