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

Problema con Valores desde TXT

Estas en el tema de Problema con Valores desde TXT en el foro de ASP Clásico en Foros del Web. Hola. Esto viene de otra pregunta.. (que ya esta resuelta) he abierto un archivo de texto con esta estructura (usando ASP por supuesto) --- el ...
  #1 (permalink)  
Antiguo 14/08/2003, 09:19
 
Fecha de Ingreso: julio-2003
Ubicación: mi camioneta?
Mensajes: 87
Antigüedad: 21 años, 9 meses
Puntos: 0
Problema con Valores desde TXT

Hola.

Esto viene de otra pregunta.. (que ya esta resuelta)
he abierto un archivo de texto con esta estructura (usando ASP por supuesto)

--- el archivo es asi ----
a b c d e f
08-29-02 07:47:05 000 07 0080510114 1000000000
08-29-02 07:47:24 000 07 0000166918 2000000000
08-29-02 07:47:33 000 07 0000185654 3000000000
08-29-02 07:48:24 000 07 0000149591 3000000000
08-29-02 07:49:09 000 07 0000304932 4000000001
08-29-02 07:52:40 000 07 0000165480 4000000002
08-29-02 07:53:06 000 07 0000147792 0000000000
08-29-02 07:53:27 000 03 0080510118 FFFFFFFFFF

--------
Como pueden ver, son 6 columnas, que para no complicarla les he puesto las letras del alfabeto (A,B,C,D,E,F)

Ahora bien... todo funciona perfecto (desde los filtros por fecha (A), hasta los filtros por empleado (E), imprimiendo la hora de entrada/salida (B).

El unico gran detalle es que la ultima clave (F) que es un campo de control que me graba el HandKey (dispositivo por medio del cual los empleados registran su entrada/salida).
p.e.
10000000000 -- entrada
30000000000 -- salida
40000000001 -- salida autorizada
40000000002 -- regreso de salida autorizada

creo que con eso queda claro...

mi GRAN problema es que ASP al imprimir o comparar el campo F solo me muestra los valores que son 1000000000 o 2000000000, , por algun motivo, cualquier otro valor.. no lo muestra... vaya, como si no existiera...

Ya le busque por todos los medios... pero llego a la conclusion de que sencillamente no lo guarda en ningun lado.... lo complicado es que solo me guarda los 100.... y 200.... ¿alguna idea de como resolver esto?
  #2 (permalink)  
Antiguo 14/08/2003, 09:21
 
Fecha de Ingreso: julio-2003
Ubicación: mi camioneta?
Mensajes: 87
Antigüedad: 21 años, 9 meses
Puntos: 0
por si a alguien se le ocurre...
no, no puedo convertir el archivo de texto a otro formato, ya que este es generado de manera automatica y ademas es utilizado en la aplicacion de Nominas
  #3 (permalink)  
Antiguo 14/08/2003, 10:00
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
de que tipo estas declarando la variable que rescata el campo F?...
  #4 (permalink)  
Antiguo 14/08/2003, 10:17
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 5 meses
Puntos: 4
bakanzipp tiene razón. Es probable que la variable que recoge los valores de la columna F no esté definida para ningún tipo y cuando recoge los primeros valores (1000..., 2000....) automáticamente les asigna una variable de tipo numérico.

Prueba a definir esa variable como texto (string) o bien pon el valor FFFFFFFFFF en la primera fila a ver qué ocurre.

De todas formas, creo que estás utilizando una matriz para separar cada línea de texto por los espacios en blanco ¿me equivoco?

En ese caso no sé si habrá que definir toda la matriz como tipo cadena de texto.

Suerte.
__________________
¡¡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!
  #5 (permalink)  
Antiguo 14/08/2003, 10:52
 
Fecha de Ingreso: julio-2003
Ubicación: mi camioneta?
Mensajes: 87
Antigüedad: 21 años, 9 meses
Puntos: 0
no estoy declarando variables...
A B C D E F
forman parte del archivo de TEXTO que abro por medio de DSN en Windows

por lo tanto, me los toma como nombres de campo.

hay alguna instruccion para ver el tipo de campo que es?
esto es para ver si es numerico o que....
  #6 (permalink)  
Antiguo 14/08/2003, 11:05
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 5 meses
Puntos: 4
No entiendo muy bien qué es eso de campos. Eso se utiliza para bases de datos y son las columnas de cada tabla. Supongo que al ser el archivo de texto de una estructura similar a una base de datos le has dado ese nombre.

De todas formas, estaría bien que pusieras cómo lees las líneas de texto y como trabajas con los valores que vas recogiendo para que nos hagamos una mejor idea de por donde tantear.

Para ver el tipo de variable se usa varType:

Response.Write(varType(variable))

Esto te devolverá un valor numérico que se corresponde con cada tipo de datos. Al de cadena de texto le corresponde el número 8. Para más información mira este enlace: http://www.desarrolloweb.com/articulos/165.php

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!
  #7 (permalink)  
Antiguo 14/08/2003, 11:16
 
Fecha de Ingreso: julio-2003
Ubicación: mi camioneta?
Mensajes: 87
Antigüedad: 21 años, 9 meses
Puntos: 0
exacto... solo por eso les llamo campos...
en el siguiente mensaje transcribo la pagina.

gracias
  #8 (permalink)  
Antiguo 14/08/2003, 11:23
 
Fecha de Ingreso: julio-2003
Ubicación: mi camioneta?
Mensajes: 87
Antigüedad: 21 años, 9 meses
Puntos: 0
Esta es la pagina...

Recibe Parametros de nombre de la persona.. y fecha inicio, fecha final..

por ahi van a ver un codigo extraño, supongo que el cambio de formato de fecha se puede hacer mas sencillo... pero como me urgia presentar avances... fue lo que se me ocurrio (dicho sea de paso.. funciona bien).

--------

el DSN handkey es creado en el ODBC de windows, en tipo de archivo de texto.

------


handkey.asp

<%
'Control para ubicar correctamente los colores del sistema de menus
pers=request.Querystring("pers")+" ("+request.Querystring("persne")+")"
ini=request.Querystring("inicio")
fin=request.Querystring("final")
inicio=cstr(month(ini))+"/"+cstr(day(ini))+"/"+cstr(year(ini))
final=cstr(month(fin))+"/"+cstr(day(fin))+"/"+cstr(year(fin))
persona=request.Querystring("quien")

Strsql3 = "Select * From Datalog.Dat where a >= #"&inicio&"# and a <= #"&final&"# and e = "&persona
'Response.Write strsql3
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DSN=handkey"

Set RS3 = Server.CreateObject("ADODB.Recordset")

RS3.Open strsql3, oConn,3,1
%>
<html>

<head>
<title></title>
</head>

<body bgcolor="#FBFED3">
<p>
<font face="Verdana" size="2" color="#000080"><b>
Empleado&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; : </b><%=pers%>
</font>
</p>
<p><font face="Verdana" size="2" color="#000080"><b>Fecha Inicial : </b><%=ini%></font>
<br>
<b>Fecha Final&nbsp;&nbsp; : </b><%=fin%>
<br>
<br>
<b>Listado General de Registros del HandKey</b>
&nbsp;
<br>
<br>
Registros Encontrados:
<%
Response.Write Rs3.RecordCount%>
</p>
<table width="50%" border="0" style="border: 1 outset #000080">
<tr>
<td bgcolor="#FFFF00" bordercolor="#000000" width="5%" align="center">
<b>Fecha</b>
</td>
<td bgcolor="#FFFF00" width="12%" align="center">
<b>Hora Registrada</b>
</td>
<td bgcolor="#FFFF00" align="center">
<b>Codigo</b>
</td>
</tr>


<%
do while not RS3.EOF
%>
<tr onmouseover='this.style.background="#FFFF91"' onmouseout='this.style.background=""'>
<td width="30%">
<font face="Verdana" size="2">
<p align="center">
<%=RS3("a")%>
</font>
</td>
<td width="35%">
<font face="Verdana" size="2">
<p align="center"><b><font color="#000080">
<%=RS3("b")%>
</font></b>
</font>
</td>
<td width="35%">
<font face="Verdana" size="1" color="#000080">
<p align="center">
<%if rs3.Fields("f")="1000000000" then%>
Entrada Normal
<%elseif rs3.Fields("f")="2000000000" then%>
No identificado
<%elseif rs3.Fields("f")="2000000000" then%>
Salida Normal
<%elseif rs3.Fields("f")="4000000001" then%>
Salida Oficial
<%elseif rs3.Fields("f")="4000000002" then%>
Regreso Salida Oficial
<%elseif rs3.Fields("f")="6000000001" then%>
Salida Permiso
<%elseif rs3.Fields("f")="6000000002" then%>
Entrada Permiso
<%end if%>

</font>
</td>
</tr>

<%
RS3.MoveNext
Loop
%>
</table>
</body>



----------
El problema esta en la ultima condicion... solo funcionan los primeros 2 if

-------

Saludos
  #9 (permalink)  
Antiguo 14/08/2003, 12:37
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
retoca esto

Código PHP:
Dim valor =  rs3.Fields("f")
response.write valor &"<br>"

<%if CStr(valor)="1000000000" then%>
Entrada Normal
<%elseif CStr(valor)="2000000000" then%>
No identificado
<%elseif CStr(valor)="2000000000" then%>
Salida Normal
<%elseif CStr(valor)="4000000001" then%>
Salida Oficial
<%elseif CStr(valor)="4000000002" then%>
Regreso Salida Oficial
<%elseif CStr(valor)="6000000001" then%>
Salida Permiso 
<%elseif CStr(valor)="6000000002" then%>
Entrada Permiso
<%end if%> 

ademas podrias trabajar con Case en vez de if else...pero ese no es el problema...
  #10 (permalink)  
Antiguo 14/08/2003, 14:37
 
Fecha de Ingreso: julio-2003
Ubicación: mi camioneta?
Mensajes: 87
Antigüedad: 21 años, 9 meses
Puntos: 0
Funciona perfecto!!!

Muchisimas gracias!

estamos en contacto
  #11 (permalink)  
Antiguo 15/08/2003, 03:40
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 22 años, 5 meses
Puntos: 4
Menos mal que bakanzipp ha dado con el problema porque yo me había perdido absolutamente. Me parecía que estabas haciendo una conexión a base de datos pero ¿dónde estaba esa base de datos? Se supone que era un archivo de texto ¿no?

Bueno, menos mal que se solucionó. Me alegro

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!
  #12 (permalink)  
Antiguo 15/08/2003, 09:26
 
Fecha de Ingreso: julio-2003
Ubicación: mi camioneta?
Mensajes: 87
Antigüedad: 21 años, 9 meses
Puntos: 0
si.. es un archivo de texto.

la conexion la hago con:

Strsql3 = "Select * From Datalog.Dat where a >= #"&inicio&"# and a <= #"&final&"# and e = "&persona
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Open "DSN=handkey"

Set RS3 = Server.CreateObject("ADODB.Recordset")

RS3.Open strsql3, oConn,3,1

----
el DSN es creado en el ODBC de windows... es el que hace la conexion real a el archivo de texto.

Gracias a ambos por ayudarme... ya quedo resuelto esto muy bien.
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 11:00.