Escribir en fichero de texto
Publicado por Didi-chan (3 intervenciones) el 20/02/2009 10:29:05
Buenas, tengo que escribir un log de errores para mi aplicación. He buscado como se escribe en texto y me lo hace bien. Lo que pasa es que sobreescribe lo que ya había y me interesaría que simplemente añadiera el texto nuevo sin eliminar lo que hubiese anteriormente.
El código es este:
Public Function escribe(error As Variant)
Dim ruta As String
Dim stream
Dim fecha As String
Dim hora As String
Dim nombre As String
nombre = "LogError.txt"
fecha = Date
hora = Time
'Este objeto nos sirve para gestionar directorios
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim objConfig As clsConfig
Set objConfig = New clsConfig
Dim path As String
path = CStr(App.path) & "..adajozATICSAModulosObservatoriosComunUtilMOdllconfig.ini"
objConfig.setPathIniFile (path)
ruta = objConfig.getKey("FILES", "logfolder", "")
Set objConfig = Nothing
'Se comprueba la existencia del directorio TMP, debe terminar con la barra
If Not fso.FolderExists(ruta) Then
MkDir ruta
End If
'Se crea y se abre el fichero
Set stream = New ADODB.stream
stream.Type = adTypeText
stream.Open
'Se escribe en el
stream.WriteText fecha & " " & hora & " " & error.getDescripcion & " " & error.getCausa
'Se escribe en disco
stream.SaveToFile ruta & nombre, adSaveCreateOverWrite
'Se cierra si esta abierto
If stream.State = adStateOpen Then
stream.Close
End If
'Se destruye si aun persiste
If Not stream Is Nothing Then
Set stream = Nothing
End If
End Function
Bueno es una función a la que le llega un objeto error del que saco una descripción y una causa, eso es irrelevante. El tema esta en el WriteText o en algo del Stream...sabeis si hay alguna opción que permita añadir en vez de sobreescribir?? Gracias.
El código es este:
Public Function escribe(error As Variant)
Dim ruta As String
Dim stream
Dim fecha As String
Dim hora As String
Dim nombre As String
nombre = "LogError.txt"
fecha = Date
hora = Time
'Este objeto nos sirve para gestionar directorios
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Dim objConfig As clsConfig
Set objConfig = New clsConfig
Dim path As String
path = CStr(App.path) & "..adajozATICSAModulosObservatoriosComunUtilMOdllconfig.ini"
objConfig.setPathIniFile (path)
ruta = objConfig.getKey("FILES", "logfolder", "")
Set objConfig = Nothing
'Se comprueba la existencia del directorio TMP, debe terminar con la barra
If Not fso.FolderExists(ruta) Then
MkDir ruta
End If
'Se crea y se abre el fichero
Set stream = New ADODB.stream
stream.Type = adTypeText
stream.Open
'Se escribe en el
stream.WriteText fecha & " " & hora & " " & error.getDescripcion & " " & error.getCausa
'Se escribe en disco
stream.SaveToFile ruta & nombre, adSaveCreateOverWrite
'Se cierra si esta abierto
If stream.State = adStateOpen Then
stream.Close
End If
'Se destruye si aun persiste
If Not stream Is Nothing Then
Set stream = Nothing
End If
End Function
Bueno es una función a la que le llega un objeto error del que saco una descripción y una causa, eso es irrelevante. El tema esta en el WriteText o en algo del Stream...sabeis si hay alguna opción que permita añadir en vez de sobreescribir?? Gracias.
Valora esta pregunta


0