Ver Mensaje Individual
  #10 (permalink)  
Antiguo 11/10/2003, 11:01
Julio Garcia
 
Fecha de Ingreso: diciembre-2001
Ubicación: Vigo
Mensajes: 38
Antigüedad: 23 años, 4 meses
Puntos: 0
Gracias, bankazipp.

Me has dado una idea. Este es el código que he desarrollado. Seguro que se puede mejorar, pero lo he sacado hace un rato y funciona correctamente.

Vamos a trabajar con 3 variables:

num_lineas = Total de líneas que tiene el fichero.
maximo = El número máximo de líneas que deseamos que tenga al final.
lineas_borrar = (obvio: num_lineas - maximo ).

El script consta de loas siguientes pasos:
1º .- Abrimos el archivo en modo lectura para saber cuantas líneas tiene el fichero.
2º .- Lo volvemos a abrir . Recorremos sin parar las líneas que no nos interesan. Las siguientes las guardamos en la variable contenido.
3º .- Lo volvemos a abrir en modo escritura y agregamos los datos
Ahí va el código...



num_lineas=0
maximo=136
strNombre=(Server.MapPath("web") & "\" & "fichero.txt")
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Set objTS= objFSO.OpenTextFile(strNombre,1,True)
Do While not objTS.AtEndOfStream
num_lineas=num_lineas+1 'Recorremos el fichero y calculamos el número total de líneas
objTS.SkipLine
Loop
ObjTS.Close
Set objTS=Nothing
If num_lineas >= maximo Then
lineas_borrar = num_lineas - maximo
contenido=""
Set objTS = objFSO.OpenTextFile(strNombre,1,True)
Do While not objTS.AtEndOfStream=True
If objTS.Line >= lineas_borrar Then 'Si la línea del fichero es superior a las líneas a borrar
contenido_linea=objTS.ReadLine & VbCrlF
contenido=contenido & contenido_linea 'Le agregamos la línea a la variable contenido
End If
If objTS.AtEndOfStream=True Then
Exit Do
End If
If contenido_linea="" Then
objTS.SkipLine
End If
Loop
objTS.Close
Set objTS = objFSO.OpenTextFile(strNombre,2,True)
objTS.Write(contenido) ' Colocamos el nuevo resultado en el fichero
objTS.Close
End If
Set objTS=Nothing
Set objFSO=Nothing


Como digo, los maestros lo podreis depurar, pero lo he hecho aprisa, y por lo menos funciona. Un saludo a todos y gracias.
__________________
El que estudia, olvida; el que lee, aprende; y el que hace, sabe (Algún autodidacta, supongo...)