Buenas.
tengo una pregunta... sobre los archivos de texto
se como se guarda y se lee desde un archivo pero nose como borrar una linea del archivo...
por ejemplo
tengo un registro con:
Reg1
Reg2
Reg3
Reg4
como hago para borrar la linea Reg2 si que me kede un espacion...
he pensado de mil formas de hacerlo... pero no encuentro la forma.
he visto por ahi guogleando que no se puede y la unica forma es creando otro registro... es eso cierto????
si hay algun metodo por favor divulgenlo. XD
de ante mano muchas gracias.
Hola, si una forma es creando un temporal, aca te paso un codigo con FSO que hace lo que queres:
Private Sub Form_Load()
Call BorrarLinea("c:\archivo.txt", 2)
End Sub
Public Function BorrarLinea(ByVal vNombreArchivo As String, ByVal vNumeroLinea As Long) As Boolean
Dim oFSO As Scripting.FileSystemObject
Dim oFSTR As Scripting.TextStream
Dim lCtr As Long
Dim vTemporal As String, vLinea As String
Dim vLineaEncontrada As Boolean
Set oFSO = New FileSystemObject
On Error GoTo ErrorHandler
If oFSO.FileExists(vNombreArchivo) Then
Set oFSTR = oFSO.OpenTextFile(vNombreArchivo)
lCtr = 1
Do While Not oFSTR.AtEndOfStream
vLinea = oFSTR.ReadLine
If lCtr <> vNumeroLinea Then
vTemporal = vTemporal & vLinea & vbCrLf
Else
vLineaEncontrada = True
End If
lCtr = lCtr + 1
Loop
oFSTR.Close
Set oFSTR = oFSO.CreateTextFile(vNombreArchivo, True)
oFSTR.Write (vTemporal)
BorrarLinea = vLineaEncontrada
End If
ErrorHandler:
On Error Resume Next
oFSTR.Close
Set oFSTR = Nothing
Set oFSO = Nothing
End Function
despues cambiale para que cree el objeto FSO en tiempo de ejecucion asi no tenes que poner la referencia...
saludos.
Almacena el contenido del fichero en un textbox, y luego:
Text1.Text=Replace(Text1.Text, "Reg2", "")
Creo que era así la sintaxis de Replace,no estoy del todo seguro.
Y ya lo vuelves a guardar machacando el fichero anterior y listo xD.
Cita de: Spider-Net en 20 Abril 2009, 22:04 PM
Almacena el contenido del fichero en un textbox, y luego:
Text1.Text=Replace(Text1.Text, "Reg2", "")
Creo que era así la sintaxis de Replace,no estoy del todo seguro.
Y ya lo vuelves a guardar machacando el fichero anterior y listo xD.
Tal cual, o ni a un text1, lo almacenas en una variable y lo vuelves al archivo.
Saludos
Con Replace, reemplazarías todas las coincidencias en caso de estar repetido en varias líneas :rolleyes:
Previo a hacer el replace sería necesario determinar la longitud de texto antes de Reg2 para así pasarlo como parametro a la función (start), además de establecer que solo se reemplace una vez (count)
Saludos
Tenes razon Novlucker, tambien se puede usar Split y eliminar la linea que contengha en su interior Reg2
PD: yo usaria archivos de acceso aleatorio en lugar de txt, saludos