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.