Ver Mensaje Individual
  #13 (permalink)  
Antiguo 03/11/2003, 21:51
Avatar de lexus
lexus
 
Fecha de Ingreso: enero-2002
Ubicación: Cali - Colombia
Mensajes: 2.234
Antigüedad: 23 años, 4 meses
Puntos: 4
hola hace mucho me estabas ayudando con esto, hace poco lo probe en la empresa y me salieron varios errores, aqui en mi casa funcionaba perfecto.

bueno la idea de borrar el archivo y reemplazarlo por uno en blanco para que no hubieran datos repetidos no funciono, ya que ese archivo se actualiza cada segundo asi que hay que hacerlo por otro modo
la idea uqe tengo es hacerlo por sql que si hay una llamada con el mismo dia, mes, año, hora y linea entonces no lo agregue a la base de datos.

lo que tengo hasta ahora es esto pero no me funciona, parece que no sirve la validacion.
(lo que esta en negrita es lo que tiene nuevo y donde se valida pàra que no sea un dato repetido, pero no funciona)


Código:
<%
Dim FSO,oFichero, Archivo, sql2, dato
rs.open "hyperterminal", con, 3, 3
set FSO = Server.CreateObject("Scripting.FileSystemObject")
Set rs2 = Server.CreateObject("ADODB.Recordset")
set oFichero = FSO.OpenTextFile(Server.MapPath("REPORTES.txt"))

On error resume next
Archivo = oFichero.ReadAll

If Err.Number <> 0 then
'no se hace nada y se informa de que el archivo está vacío
response.write "<br>El archivo REPORTES.TXT no tiene datos nuevos.<br>"
Err.clear

else

'quito la linea vacía:
Archivo = Replace(Archivo, vbcrlf & vbcrlf, vbcrlf)

' quito los encabezados:
Archivo = Replace(Archivo,"  Date     Time    Ext CO          Dial Number           Duration  Acc code  CD " & vbcrlf, "")

' quito los "-"
Archivo = Replace(Archivo,"--------------------------------------------------------------------------------" & vbcrlf, "")

' convierto el string en una matriz por el salto de linea
Archivo = Split(Archivo, vbcrlf)

' por cada elemento del array, detecto "campos" y los guardo en variables "volátiles"
For i = 0 to UBound(Archivo)
sDate = Trim(Left(Archivo(i), 8))
sTime = Trim(Mid(Archivo(i), 10, 7))
sExt = Trim(Mid(Archivo(i), 20, 3))
sCO = Trim(Mid(Archivo(i), 24, 2))
sDialNumber = Trim(Mid(Archivo(i), 27, 31))
sDuration = Trim(Mid(Archivo(i), 58, 8))
'convierto la fecha d/m/a al formato separado
'-----------------------------------
mes = Left(sDate, 2)
dia = Mid(sDate, 4, 2)
ano = "20" & Right(sDate, 2)
'---------------------------------
'cambio el formato de duracion
sDuration = Replace(sDuration, "'", ":")
'---------------------------------


sql2 = "SELECT * FROM hyperterminal"
rs2.Open sql2, con, 3, 3
if rs2.eof then
dato="nuevo"
else
do while not rs2.eof 
if rs2("dia") = dia AND rs2("mes") = mes AND rs2("ano") = ano AND rs2("hora") = sTime AND rs2("co") = sCo  then
dato="repetido"
End if 
rs2.movenext
loop
end if
if dato="repetido" then
response.write "dato repetido, no lo agrego"
response.end
Else
rs.AddNew
rs("dia") = dia
rs("mes") = mes
rs("ano") = ano
rs("hora") = sTime
rs("ext") = sExt
rs("co") = sCO
rs("llamada_saliente") = sDialNumber
rs("duracion") = sDuration
rs.Update
end if 
Next
'para agregar solo datos nuevos a la base de datos, sobreescribe el archivo txt
Set CrearNuevoEnBlanco = FSO.CreateTextFile(Server.MapPath("REPORTES.txt"), TRUE)
'ruta completa
'Set CrearNuevoEnBlanco = FSO.CreateTextFile("C:\Documents and Settings\Administrador\REPORTE.TXT ", TRUE)

oFichero.Close
Set oFichero = nothing
set FSO = nothing
Set CrearNuevoEnBlanco = Nothing
end if

set rs = nothing
set rs2 = nothing
set con = nothing
%>
__________________
Control de Visitantes, Control de Accesos, Minutas digitales, Manejo de Correspondencia
http://www.controldevisitantes.com