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: 24 años, 2 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,oFicheroArchivo
rs
.open "hyperterminal"con33
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(Archivovbcrlf vbcrlfvbcrlf)

' 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 0 to UBound(Archivo)
sDate Trim(Left(Archivo(i), 8))
sTime Trim(Mid(Archivo(i), 107))
sExt Trim(Mid(Archivo(i), 203))
sCO Trim(Mid(Archivo(i), 242))
sDialNumber Trim(Mid(Archivo(i), 2731))
sDuration Trim(Mid(Archivo(i), 588))
'convierto la fecha d/m/a al formato separado
'
-----------------------------------
mes Left(sDate2)
dia Mid(sDate42)
ano "20" Right(sDate2)
'---------------------------------
'
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