Ver Mensaje Individual
  #11 (permalink)  
Antiguo 23/06/2003, 12:36
Avatar de AlZuwaga
AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 25 años, 7 meses
Puntos: 535
Probá ahora. Lo que hace es especificar que continúe ante un error, detectar si lo hubo y en base a eso informar que el archivo no tiene contenido o, en caso de tenerlo, continuar con su tarea normal.


Código PHP:
<%
Dim FSO,oFichero, Archivo
rs
.open "hyperterminal", con, 3, 3
set FSO 
= Server.CreateObject("Scripting.FileSystemObject")
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 "El archivo actualmente no tiene contenido.<br>"
Response.Write "Descripción técnica del error: " & err.Description & " (nro. " & Err.Number & ")"
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, "'", ":")
'---------------------------------
agrego cada linea a la base de datos
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
Next
'
para agregar solo datos nuevos a la base de datos
Set CrearNuevoEnBlanco 
= FSO.CreateTextFile(Server.MapPath("REPORTES.txt"), TRUE)

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

ahora.. me parece muy poco tiempo 10 segundos... yo lo pobdría en no menos de un minuto.. pero eso depende de las necesidades