Tema: Ayuda Please
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 18/08/2005, 02:27
Avatar de macedo
macedo
 
Fecha de Ingreso: enero-2002
Ubicación: Madrid
Mensajes: 124
Antigüedad: 23 años, 3 meses
Puntos: 0
Hola Darhas.

Si el archivo no es muy grande, puedes ir almacenando todas las lineas en un string y despues escribirlo todo junto al final con un solo write.

el write hace justamente lo que tu dices, borra el archivo y empieza por el principio.

Yo lo haría así.

Function EscribirConfiguracion(saltos, premio)
set FSO = CreateObject ("Scripting.FileSystemObject")
set Escribir = FSO.OpenTextFile("c:\Inetpub\wwwroot\prueba\config uracion.txt",2)

a = 0
Do While Not Escribir.AtEndofStream
if a=saltos then
Cadena=cadena & premio & chr(13)&chr(10)
else
Cadena=cadena & Escribir.ReadLine() & chr(13)&chr(10)
end if
a = a + 1
Loop
Escribir.Write (Cadena)
Escribir.Close
Leer.Close
set Leer = Nothing
set Escribir = Nothing
End Function


o así

Function EscribirConfiguracion(saltos, premio)
set FSO = CreateObject ("Scripting.FileSystemObject")
set Leer= FSO.OpenTextFile("c:\Inetpub\wwwroot\prueba\config uracion.txt",1)
set Escribir= FSO.OpenTextFile("c:\Inetpub\wwwroot\prueba\config uracion2.txt",2)

a = 0
Do While Not Leer.AtEndofStream
if a=saltos then
Escribir.WriteLine(premio)
else
Escribir.WriteLine(Leer.ReadLine())
end if
a = a + 1
Loop
Escribir.Close
Leer.Close
set Leer = Nothing
set Escribir = Nothing
Set oFSO = CreateObject("Scripting.FileSystemObject")
sSourceFile = "c:\Inetpub\wwwroot\prueba\configuracion.txt"
oFSO.DeleteFile sSourceFile
sSourceFile2 = "c:\Inetpub\wwwroot\prueba\configuracion2.txt"
oFSO.MoveFile sSourceFile2 , sSourceFile
oFSO.close
End Function

En el primer codigo lee todas las lineas y las almacena en una cadena excepto cuando a=saltos (ahí añade premio a la cadena). Luego escribe todo junto en el archivo.

En el segunto va leyendo y escribiendo las lineas una por una pero en archivos distintos. Al final borra el original y renombra el editado.
Este caso es mejor si el archivo es muy grande porque el string que te generaría en el primer caso prodría ocupar demasiada memoria.

Espero que te sirva.

Saludos