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

Problemas de principiante....

Estas en el tema de Problemas de principiante.... en el foro de ASP Clásico en Foros del Web. Hola a todos, antes que nada, soy nuevo en esto del asp. Tengo el siguiente problema. Con fines de estudio, he tratado de ejecutar este ...
  #1 (permalink)  
Antiguo 22/11/2004, 11:22
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 4 meses
Puntos: 0
Problemas de principiante....

Hola a todos, antes que nada, soy nuevo en esto del asp.
Tengo el siguiente problema. Con fines de estudio, he tratado de ejecutar
este codigo que muy gentilmente nos provee el ScriptMaster del foro.


<HTML>

<HEAD>
<TITLE></TITLE>
<META NAME="GENERATOR" CONTENT="CutePage 2.0">
</HEAD>

<BODY>

<%
Set fs = CreateObject("Scripting.FileSystemObject")
Set wfile = fs.OpenTextFile("/db/recetas.txt")
counter=0
do while not wfile.AtEndOfStream
counter=counter+1
singleline=wfile.readline
response.write (counter & singleline & "<br>")

loop

wfile.close
Set wfile=nothing
Set fs=nothing

%>


</BODY>
</HTML>

Estoy utilizando xp y he instalado el IIS y cuando lo consulto me dice que
està activo y funcionando.

1ra pregunta: se supone que al ejecutar la página, se muestran en ella uno a uno
cada registro???

2da: Está bien hubicadas las sentencias, le falta algo al codigo para que muestre los
registros?

3ra: el archivo recetas.txt lo he puesto en C:\inetpub\wwwroot\db, esta bien?

4ta: tengo que hacer algo en el IIS o activar algo?

y si estoy haciendo algo mal, les agradecerìa me ayuden.

Desde ya muchas gracias.

Saludos cordiales
  #2 (permalink)  
Antiguo 22/11/2004, 11:41
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
1) No, te mostrará todo el contenido del archivo de una vez. El corrimiento de cada registro lo hace en el servidor, forma el HTML y luego, ya que esta todo formado, se envía al cliente.

2) Nop, solo tengo duda en cuanto a la ruta, yo usuaria rutas absolutas o me apoyaría de Server.MapPath

3) mmm, si, puedes ubicarlo en cualquier carpeta, siempre y cuendo lo referencies bien.

4) No.

Prueba primero si el IIS esta trabajando con un <%=Hola Mundo%>

Saludos
  #3 (permalink)  
Antiguo 22/11/2004, 13:10
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 4 meses
Puntos: 0
Sigen las dudas....

Hola Myakire, gracias por responder tan rápido.

Si, suponía que me hiba a mostrar todos los registros luego de que recorriera el archivo entero. Lo pregunte mal, ya me lo aclaraste.

Luego

Primero: pruebo lo que me dijistes <%=Hola Mundo%> (supongo que en el body, no?) pero no me muestra nada.

segundo: respecto a lo que me sugeris en el path la sentencia quedaría asi?:

Set wfile = fs.OpenTextFile( Server.MapPath & "/db/recetas.txt")


Desde ya gracias.
  #4 (permalink)  
Antiguo 22/11/2004, 13:50
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
jeje, pequeña metida de pata por parte mia.......faltó encerrar entre comillas el texto.

Bueno, la forma común de verificar que se ha formado el HTML correcto es observando el código de la página resultante. Ahí uno ve si el texto que se supone debería de verse, esta en algún TAG HTML que le impida verse (un td o dentro del HEAD) o cosas así.

Por lo del server.mappath, se usaría así: wfile = fs.OpenTextFile(Server.MapPath("db\recetas.txt")).

Esto es que buscará el archivo en un directorio llamado db dentro de la carpeta donde se encuentre su archivo ASP.
  #5 (permalink)  
Antiguo 22/11/2004, 13:59
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Ahora que releo el post, me parece extraño que hayas ingresado <%=Hola Mundo%> y no te haya marcado error. Ya que debería de haberte pedido el fin de instrucción del response.write (forma abreviada <%=%>) en el espacio en blanco.

Con ello podemos casi, casi asegurarnos que no esta interpretando el ASP. ¿Cómo estas corriendo las páginas?, no lo estaras haciendo con su ruta física (ej. c:\Inetpub\wwwroot), se debe se ejecutar una página ASP desde el IIS, esto es, en la barra de direcciones teclea: localhost/tupagina.asp o bien 127.0.0.1/tupagina.asp, o tu IP o el nombre de tu PC.

Si haz hecho un directorio virtual dentro de wwwroot, no olvides referenciarlo: localhost/midirectorio/tupagina.asp

Saludos
  #6 (permalink)  
Antiguo 22/11/2004, 15:01
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 4 meses
Puntos: 0
!Ya aparece el Hola Mundo.....¡¡¡¡¡

Hola, Myakire, gracias a tu ayuda, he podido hacer aparecer el Hola mundo... todo un logro para esta altura de mi aprendizaje... jeje.

Bueno, este solo detalle, como te daras cuenta, determina que un monton de cosas si estan andando... ahora con un poco mas de pasiencia intentarè leer el archivo.

Solo una consulta: los archivos de texto tienen que tener al final de registro o al final del archivo algun caracter especial que lo identifique???

Gracias por tu ayuda.
Saludos Cordiales.
  #7 (permalink)  
Antiguo 22/11/2004, 15:04
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 4 meses
Puntos: 0
De ultimo momento.....

Me aparece el siguiente msg:

HTTP 403.9 - Access Forbidden: Too many users are connected
Servicios de Internet Information Server

Evidentemente no hay too many sino yo solito....??????

Sabras a que se debe este error?
Gracias.
Saludos cordiales.
  #8 (permalink)  
Antiguo 22/11/2004, 15:26
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Pueden ser dos cosas: que tengas limitado el número de usuarios a la pc (por default esta a 10 como max.) o que no se puedan ejecutar scripts FSO en tu directorio.

Checa las propiedades de tu sitio en el IIS, debes de tener permisos de ejecución "secuencias de comandos", también checa las propiedades de la carpeta.

Y revisa los siguientes links:

http://www.experts-exchange.com/Web/..._20286298.html
http://forums.aspfree.com/archive/t-30998
http://www.forosdelweb.com/showthrea...tpost&t=134935

Última edición por Myakire; 22/11/2004 a las 15:28
  #9 (permalink)  
Antiguo 22/11/2004, 18:16
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 4 meses
Puntos: 0
Y ahora este error.... (y ya son...)

Hola Myakira, si andas por alli...
Este es el error que me da ahora

Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A01B6)
El objeto no acepta esta propiedad o método: 'OpenTextFile'
/lasrecetas/resdb.asp, línea 9

La sentencia 9 es la que me dijistes que arregle y la puse asi:

Set fs = CreateObject("Scripting.FileSystemObject")
Set wfile = fs.OpenTextFile(Server.MapPath("db\recetas.txt"))

Bueno, 8 y nueve...
Segun entiendo, fs es el que no acepta la propiedad??

Pero como esta funiconando el iis, seguirè probando otras sentencias
para interpretar mejor el funcionamiento de este chunche.

Gracias por tu tiempo.
  #10 (permalink)  
Antiguo 22/11/2004, 21:03
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Si estás programando en VB 6, quizás esta sea una sentencia válida, pero en ASP, me parece que debes utilizar el objeto server

Set fs = Server.CreateObject("Scripting.FileSystemObject")
Set wfile = fs.OpenTextFile(Server.MapPath("db\recetas.txt"))

Aunque no he intentado sin el server...hora de probar

Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 22/11/2004, 23:44
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 4 meses
Puntos: 0
Alguna dif. de versión o actualización???

Gracias por tu respuesta u_goldman, probé utilizar server. pero me sigue dando el mismo problema.
Evidentemente tu consejo es válido, pero no es en esa sentencia en donde se produce el problema, sino en la siguiente: OpenTextFile.

Ahora, ejecuto este mismo asp en un servidor de esos gratuitos y funciona perfectamente trayendome los registros del archivo .txt
O sea que creo que el problema esta en mi IIS o en su configuración.
Quizas sepan si existe alguna diferencia de versión que deba actualizar
y donde averiguo si es necesario... o alguna pista sobre la configuración del iis que deba tener en cuenta?

El error que emite es el sig:

HTTP 500.100. Error interno del servidor: error de ASP
Servicios de Internet Information Server

Información técnica (para personal de soporte técnico)

* Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A01B6)
El objeto no acepta esta propiedad o método: 'OpenTextFile'
/lasrecetas/resdb.asp, línea 13


Desde ya muchas gracias.
  #12 (permalink)  
Antiguo 23/11/2004, 09:15
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
mmmmmmm, vaya, vaya. Efectivamente estas dos lineas corren sin problemas, ya lo he constatado:

Código:
Set fs = CreateObject("Scripting.FileSystemObject")
Set wfile = fs.OpenTextFile(Server.MapPath("prueba\setup.log"))
Pero el error es claro........¿que te parece si intentamos desinstalar el IIS y reinstalarlo?

Para pruebas usa el mismo script que tienes (que debe funcionar bien, así como esta) o usa este otro:
Código:
    ruta = "db\recetas.txt"
    Set fso = Server.CreateObject("Scripting.FileSystemObject")   
    If (fso.fileExists(Server.MapPath(ruta))) Then   
       set archivo = fso.openTextFile(server.mapPath(ruta)) 
       listado = archivo.ReadAll
       Response.Write (listado) 'Te mostrará el contenido del archivo pero sin saltos de linea
   Else
       Response.Write "No se encontró el archivo (" & ruta & ")"
   End If
  #13 (permalink)  
Antiguo 23/11/2004, 10:10
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 19 años, 6 meses
Puntos: 0
proba a ver si te funciona

<%
Dim fso
Dim sRead1, i

Const ForReading = 1, ForWriting = 2, ForAppending = 8

set fso = server.CreateObject("Scripting.FileSystemObject")

set f = fso.GetFile("Server.MapPath & "/db/recetas.txt"")

set ts = f.OpenAsTextStream(ForReading, -2)

Do While not ts.AtEndOfStream


sRead1(i) = ts.Read(20) <-- aca le pones la cantidad de caracteres a leer
si no readline o read all
sread1=trim(sread1)


Response.Write(sread1)

Loop

ts.Close

%>
  #14 (permalink)  
Antiguo 23/11/2004, 10:17
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 19 años, 6 meses
Puntos: 0
perdon
pero la linea :
sRead1(i) = ts.Read(20)

debe ser
sRead1 = ts.Read(20)
  #15 (permalink)  
Antiguo 23/11/2004, 10:25
 
Fecha de Ingreso: noviembre-2004
Ubicación: trelew - chubut
Mensajes: 134
Antigüedad: 19 años, 6 meses
Puntos: 0
si queres crearlo usa esto:

<%@ Language=VBScript %>

<%

Dim objFSO2

Dim textoaescribir, objFSO2
Const ForReading = 1, ForWriting = 2, ForAppending = 8

Set objFSO2 = CreateObject("Scripting.FileSystemObject")

Set objTextFile2 = objFSO2.CreateTextFile("c:\paso\salida.txt", True)

textoaescribir = "Hola mundo" & vbCrLf

'Response.Write(textoaescribir)


objTextFile2.Write( textoaescribir )

objTextFile2.Close
%>
  #16 (permalink)  
Antiguo 24/11/2004, 10:22
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 4 meses
Puntos: 0
Para mi, es mi IIS...

Hola Myakire y flacoluis, pruebo el codigo que me proporcionas (el 1ro)
y me da el siguiente error:


HTTP 500.100. Error interno del servidor: error de ASP
Servicios de Internet Information Server

Información técnica (para personal de soporte técnico)

* Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A01B6)
El objeto no acepta esta propiedad o método: 'openTextFile'
/lasrecetas/untitled1.asp, línea 13


Aparentemente el iis esta funcionando y lo interpreta como asp no?
todo parece funcionar hasta la apertura del archivo de texto...


''''

Luego probé el que me envia flacoluis que en ves de utilizar
opentexfile usa getfile pero me da este error:

HTTP 500.100. Error interno del servidor: error de ASP
Servicios de Internet Information Server

Información técnica (para personal de soporte técnico)

* Tipo de error:
Error de Microsoft VBScript en tiempo de ejecución (0x800A01B6)
El objeto no acepta esta propiedad o método: 'GetFile'
/lasrecetas/untitled1.asp, línea 15


esta es la linea 15

set f = fso.GetFile("Server.MapPath" & "/db/recetas.txt")



NOTA: en el codigo que me enviastes, cambie
set f = fso.GetFile("Server.MapPath & "/db/recetas.txt"")
por
set f = fso.GetFile("Server.MapPath" & "/db/recetas.txt")
no se si esta bien?
¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨¨

Y para terminar, en el ejemplo que me pasa flacoluis para crear
el archivo el error salta en la linea 17:

Set objTextFile2 = objFSO2.CreateTextFile("c:\paso\salida.txt", True)

en el createtextfile

# El objeto no acepta esta propiedad o método: 'CreateTextFile'
/lasrecetas/untitled1.asp, línea 17

Bueno, creo que estoy haciendo algo mal en el iis porque aparentemente
todos estos ejemplos son correctos y funcionan en otros servidores, pero
en el mio no...

Gracias a los dos por sus respuestas y su preocupacion por el tema.
Saludos cordiales.
  #17 (permalink)  
Antiguo 24/11/2004, 12:02
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
¿QUe versión de IIS tienes?, por que si es IIS, ¿verdad?, no vaya a ser PWS, jeje.

Intenta probando con OpenFile, creo ese era el método anterior.
  #18 (permalink)  
Antiguo 24/11/2004, 12:53
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 22 años, 4 meses
Puntos: 146
Habia visto que el antivirus te marcaba error de permisos, pero veo que tambien marca ese:

Cita:
"This problem occurs because the Script Blocking feature in Norton AntiVirus software blocks scripting operations that access the file system, such as FileSystemObject. Although this problem is prevalent in Active Server Pages (ASP) Web applications, it can also occur in other technologies, such as Windows Scripting."
Desactiva la opción: "Enable Script Blocking (recommended)." o como se llame en tu antivirus.

Saludos
  #19 (permalink)  
Antiguo 24/11/2004, 18:52
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 4 meses
Puntos: 0
Y se hizo la luz.... muchas gracias

Hola Myakire, no se por que artilugios del destino, te distes cuenta que el Norton estaba blokeando no se que cosa (script blokin) que al sacarla funciona todo ok.
Si utilizo el IIS lo utilizaba desde la version 4 del win NT y ahora estoy usando xp y este mismo (mejorado y aumentado, porque la otra versión se daba de patadas con el active directory).

El unico problema que encontre en el iis es que al comprobar la web, como he isntalado el xp en fat32 me da el siguiente msg:

Cuando compruebo la web

PROBLEMA: Your web is insecure because the server extensions DLLs are installed on a FAT drive. We recommend that you convert the drive that the extensions are installed on to NTFS.

Como no voy a utilizar esta maquina como servidor, solo quiero que funcione el iis para probar lo que hago, no me interesa mucho pasar a ntfs porque tengo otros discos que levanto de a ratos en milenium y pretendo que vean este disco cuando hago eso.

Listo, ya funciona todo gracias a tu ayuda.
Muchas gracias. Tendre al tanto a todo el foro sobre mis adelantos y problemas en ASP.
  #20 (permalink)  
Antiguo 24/11/2004, 18:54
 
Fecha de Ingreso: febrero-2003
Ubicación: Costa Rica
Mensajes: 133
Antigüedad: 21 años, 4 meses
Puntos: 0
Y gracias tambien a flacoluis por sus acertados comentarios.

Saludos cordiales.
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 00:05.