You are on page 1of 39

RE:Eliminar ltima linea en blanco fichero txt Hola nose si este ejemplo te ayude, lo realice leyendo un archivo y luego

generando otro, si te fijas, utilizando el objeto FileSystemObject, el codigo queda de esta forma, solo tendras que colocar la ruta donde este tu archivo, de todos modos pruebalo, te coloco dos ejemplos y espero te sirva de ayuda:

Sub LeeryEscribir() Dim ArchivoSistema, Carpeta, ArchivosCarpeta, Archivo, AbrirArchivo, contador Dim Linea() Set ArchivoSistema = CreateObject("Scripting.FileSystemObject") Set Carpeta = ArchivoSistema.GetFolder("C:Documents and SettingsDaivinsonEscritorio") Set ArchivosCarpeta = Carpeta.Files

'Se recorre la coleccion de los archivos For Each Archivo In ArchivosCarpeta

If Archivo.Name = "prueba.txt" Then 'Abrir el Archivo para la lectura correspondiente Set AbrirArchivo = Archivo.OpenAsTextStream(1) 'El archivo lo abro y guardo cada linea en un vector Do While AbrirArchivo.atendofline = False contador = contador + 1 ReDim Preserve Linea(contador) Linea(contador) = AbrirArchivo.ReadLine

Loop 'Se cierra el archivo el Archivo

AbrirArchivo.Close Set AbrirArchivo = Nothing End If

Next 'Archivo Set CrearArchivo = ArchivoSistema.CreateTextFile("C:Documents and SettingsDaivinsonEscritoriootraprueba.txt", True) For i = 1 To contador CrearArchivo.Writeline Linea(i) Next i Set CrearArchivo = Nothing Set ArchivosCarpeta = Nothing Set Carpeta = Nothing Set ArchivoSistema = Nothing

End Sub

'******************************************************************************** ********* 'Aqu esta el otro ejemplo: Sub otroejemplo()

Open "C:Documents and SettingsDaivinsonEscritoriootraprueba.txt" For Input As #1

'Luego se tiene que leer con

Dim Linea As String, Total As String Do Until EOF(1) Line Input #1, Linea Total = Total + Linea + vbCrLf Loop Close #1 End Sub

Contar archivos en un directorio

Texto planoCopiar cdigo fuenteImprimir Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load

Try

Dim ContadorDeArchivos As System.Collections.ObjectModel.ReadOnlyCollection(Of String) 'le indicamos el path que queremos ContadorDeArchivos = My.Computer.FileSystem.GetFiles("C:\WINDOWS") 'nos devuelve la cantidad de archivos

MsgBox("La Cantidad de Archivos es: " & CStr(ContadorDeArchivos.Count)) ' error

Catch oExcep As Exception MsgBox("Descripcin del error : " & _ oExcep.Message, MsgBoxStyle.Critical, "Error") End Try

End Sub Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load

Try

Dim ContadorDeArchivos As System.Collections.ObjectModel.ReadOnlyCollection(Of String) 'le indicamos el path que queremos ContadorDeArchivos = My.Computer.FileSystem.GetFiles("C:\WINDOWS") 'nos devuelve la cantidad de archivos

MsgBox("La Cantidad de Archivos es: " & CStr(ContadorDeArchivos.Count)) ' error Catch oExcep As Exception MsgBox("Descripcin del error : " & _ oExcep.Message, MsgBoxStyle.Critical, "Error") End Try

End Sub

--------------------------------------------------------------------------------

2 - Crear un archivo vaco ( mtodo Create - objeto System.IO.File ) Texto planoCopiar cdigo fuenteImprimir Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

Try Dim Archivo As System.IO.FileStream ' crea un archivo vacio prueba.txt Archivo = System.IO.File.Create("c:\Prueba.txt") ' error Catch oe As Exception MsgBox(oe.Message, MsgBoxStyle.Critical) End Try End Sub Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

Try Dim Archivo As System.IO.FileStream ' crea un archivo vacio prueba.txt Archivo = System.IO.File.Create("c:\Prueba.txt")

' error Catch oe As Exception MsgBox(oe.Message, MsgBoxStyle.Critical) End Try End Sub

--------------------------------------------------------------------------------

3 - Crear un archivo plano y aadirle texto ( mtodo WriteLine del objeto StreamWriter. Espacio de nombres System.IO ) Texto planoCopiar cdigo fuenteImprimir Option Explicit On

Imports System.IO

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load

Dim oSW As New StreamWriter("C:\archivo_prueba.txt")

Dim Linea As String = "Lnea de texto " & vbNewLine & "Otra linea de texto" oSW.WriteLine(Linea)

oSW.Flush()

End Sub End Class Option Explicit On

Imports System.IO

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load

Dim oSW As New StreamWriter("C:\archivo_prueba.txt")

Dim Linea As String = "Lnea de texto " & vbNewLine & "Otra linea de texto" oSW.WriteLine(Linea) oSW.Flush()

End Sub End Class

--------------------------------------------------------------------------------

4 - My.Computer.FileSystem.GetFiles - Listar archivos Ejemplo que carga y lista en un control listbox, los archivos de una carpeta

Colocar un ListBox1

Texto planoCopiar cdigo fuenteImprimir Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

Try ' lista todos los archivos dll del directorio windows _ ' SearchAllSubDirectories : incluye los Subdirectorios ' SearchTopLevelOnly : para buscar solo en el nivel actual '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' For Each Archivo As String In My.Computer.FileSystem.GetFiles( _ "c:\windows", _ FileIO.SearchOption.SearchAllSubDirectories, _ "*.dll")

ListBox1.Items.Add(Archivo) Next ' errores Catch oe As Exception MsgBox(oe.Message, MsgBoxStyle.Critical)

End Try End Sub Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

Try ' lista todos los archivos dll del directorio windows _ ' SearchAllSubDirectories : incluye los Subdirectorios ' SearchTopLevelOnly : para buscar solo en el nivel actual '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' For Each Archivo As String In My.Computer.FileSystem.GetFiles( _ "c:\windows", _ FileIO.SearchOption.SearchAllSubDirectories, _ "*.dll")

ListBox1.Items.Add(Archivo) Next ' errores Catch oe As Exception MsgBox(oe.Message, MsgBoxStyle.Critical) End Try End Sub

--------------------------------------------------------------------------------

5 - My.Computer.FileSystem.FindInFiles - Buscar dentro de un fichero Lo siguiente Busca en un directorio archivos que contengan una cadena de texto determinada

Controles : un ListBox1 en el form

Texto planoCopiar cdigo fuenteImprimir Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

Try

Dim Archivo As System.Collections.ObjectModel.ReadOnlyCollection(Of String) ' busca "Hola mundo" en un solo nivel ( SearchTopLevelOnly ) en el directorio c: Archivo = My.Computer.FileSystem.FindInFiles( _ "C:\", _ "Hola Mundo", _ True, _ FileIO.SearchOption.SearchTopLevelOnly) ' recorre la lista For Each name As String In Archivo ' Agrega ListBox1.Items.Add(name) Next

' error Catch oe As Exception MsgBox(oe.Message, MsgBoxStyle.Critical) End Try nd Sub Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

Try

Dim Archivo As System.Collections.ObjectModel.ReadOnlyCollection(Of String) ' busca "Hola mundo" en un solo nivel ( SearchTopLevelOnly ) en el directorio c: Archivo = My.Computer.FileSystem.FindInFiles( _ "C:\", _ "Hola Mundo", _ True, _ FileIO.SearchOption.SearchTopLevelOnly) ' recorre la lista For Each name As String In Archivo ' Agrega ListBox1.Items.Add(name) Next ' error Catch oe As Exception MsgBox(oe.Message, MsgBoxStyle.Critical) End Try

End Sub

--------------------------------------------------------------------------------

6 - Comprobar si un directorio o archivo Existe Propiedad Exist del objeto Directory y el objeto File. (Espacio de nombres System.IO)

Texto planoCopiar cdigo fuenteImprimir Option Explicit On

Imports System.IO

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load

' Directory If Directory.Exists("c:\windows") Then MsgBox("La carpeta existe", MsgBoxStyle.Information) Else

MsgBox("No existe", MsgBoxStyle.Information) End If

If File.Exists("c:\windows\explorer.exe") Then MsgBox("Existe", MsgBoxStyle.Information) Else MsgBox("No existe", MsgBoxStyle.Information) End If End Sub End Class Option Explicit On

Imports System.IO

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, _ ByVal e As System.EventArgs) _ Handles MyBase.Load

' Directory If Directory.Exists("c:\windows") Then MsgBox("La carpeta existe", MsgBoxStyle.Information) Else MsgBox("No existe", MsgBoxStyle.Information) End If

If File.Exists("c:\windows\explorer.exe") Then MsgBox("Existe", MsgBoxStyle.Information) Else MsgBox("No existe", MsgBoxStyle.Information) End If End Sub End Class

--------------------------------------------------------------------------------

7 - Renombrar un archivo ( My.Computer.FileSystem.RenameFile )

Texto planoCopiar cdigo fuenteImprimir Option Explicit On

Public Class Form1 Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' ruta del archivo y el nuevo nombre Dim sPath As String = "c:\archivo.txt"

Dim sNuevoNombre As String = "archivo_Renombrado.txt"

Try ' Renombrarlo con la funcin renameFile My.Computer.FileSystem.RenameFile(sPath, sNuevoNombre) MsgBox("Ok.", MsgBoxStyle.Information, "Renombrar archivo") ' errores Catch ex As Exception MsgBox(ex.Message.ToString, MsgBoxStyle.Critical) End Try End Sub

End Class Option Explicit On

Public Class Form1 Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' ruta del archivo y el nuevo nombre Dim sPath As String = "c:\archivo.txt" Dim sNuevoNombre As String = "archivo_Renombrado.txt"

Try ' Renombrarlo con la funcin renameFile My.Computer.FileSystem.RenameFile(sPath, sNuevoNombre)

MsgBox("Ok.", MsgBoxStyle.Information, "Renombrar archivo") ' errores Catch ex As Exception MsgBox(ex.Message.ToString, MsgBoxStyle.Critical) End Try End Sub

End Class

--------------------------------------------------------------------------------

8 - Mover ( My.Computer.FileSystem.MoveFile )

Texto planoCopiar cdigo fuenteImprimir Option Explicit On

Public Class Form1 Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' ruta del archivo origen y el nuevo path y nombre Dim sArchivoOrigen As String = "c:\archivo.txt"

Dim sRutaDestino As String = "d:\archivo.txt"

Try ' Mover el fichero.si existe lo sobreescribe My.Computer.FileSystem.MoveFile(sArchivoOrigen, _ sRutaDestino, _ True) MsgBox("Ok.", MsgBoxStyle.Information, "Mover archivo") ' errores Catch ex As Exception MsgBox(ex.Message.ToString, MsgBoxStyle.Critical) End Try End Sub End Class Option Explicit On

Public Class Form1 Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load ' ruta del archivo origen y el nuevo path y nombre Dim sArchivoOrigen As String = "c:\archivo.txt" Dim sRutaDestino As String = "d:\archivo.txt"

Try ' Mover el fichero.si existe lo sobreescribe

My.Computer.FileSystem.MoveFile(sArchivoOrigen, _ sRutaDestino, _ True) MsgBox("Ok.", MsgBoxStyle.Information, "Mover archivo") ' errores Catch ex As Exception MsgBox(ex.Message.ToString, MsgBoxStyle.Critical) End Try End Sub End Class

--------------------------------------------------------------------------------

9 Eliminar archivos y carpetas ( My.Computer.FileSystem.DeleteFile )

( My.Computer.FileSystem.DeleteDirectory )

Texto planoCopiar cdigo fuenteImprimir Option Explicit On

Public Class Form1 Private Sub Form1_Load( _

ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

Try ' Eliminar el archivo, mostrando el cuadro 'de dilogo de eliminar de windows para confirmar Dim sdir As String = "c:\Nueva carpeta" Dim Spath As String = "c:\archivo.txt"

' Archivo My.Computer.FileSystem.DeleteFile( _ Spath, _ FileIO.UIOption.AllDialogs, _ FileIO.RecycleOption.SendToRecycleBin, _ FileIO.UICancelOption.DoNothing)

' carpeta My.Computer.FileSystem.DeleteDirectory( _ sdir, _ FileIO.UIOption.AllDialogs, _ FileIO.RecycleOption.SendToRecycleBin, _ FileIO.UICancelOption.DoNothing)

' errores Catch ex As Exception MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)

End Try End Sub End Class Option Explicit On

Public Class Form1 Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

Try ' Eliminar el archivo, mostrando el cuadro 'de dilogo de eliminar de windows para confirmar Dim sdir As String = "c:\Nueva carpeta" Dim Spath As String = "c:\archivo.txt"

' Archivo My.Computer.FileSystem.DeleteFile( _ Spath, _ FileIO.UIOption.AllDialogs, _ FileIO.RecycleOption.SendToRecycleBin, _ FileIO.UICancelOption.DoNothing)

' carpeta My.Computer.FileSystem.DeleteDirectory( _ sdir, _

FileIO.UIOption.AllDialogs, _ FileIO.RecycleOption.SendToRecycleBin, _ FileIO.UICancelOption.DoNothing)

' errores Catch ex As Exception MsgBox(ex.Message.ToString, MsgBoxStyle.Critical) End Try End Sub End Class

--------------------------------------------------------------------------------

10 - Crear un archivo temporal ( My.Computer.FileSystem.GetTempFileName )

Texto planoCopiar cdigo fuenteImprimir Option Explicit On

Public Class Form1 Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

Try ' crea el archivo en el directorio temp del usuario Dim sTempFile As String = My.Computer.FileSystem.GetTempFileName.ToString ' muestra la ruta MsgBox("Archivo creado en la direccin :" & _ vbNewLine & _ sTempFile, _ MsgBoxStyle.Information, "Ruta del temporal")

' errores Catch ex As Exception MsgBox(ex.Message.ToString, MsgBoxStyle.Critical) End Try End Sub End Class Option Explicit On

Public Class Form1 Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

Try ' crea el archivo en el directorio temp del usuario Dim sTempFile As String = My.Computer.FileSystem.GetTempFileName.ToString

' muestra la ruta MsgBox("Archivo creado en la direccin :" & _ vbNewLine & _ sTempFile, _ MsgBoxStyle.Information, "Ruta del temporal")

' errores Catch ex As Exception MsgBox(ex.Message.ToString, MsgBoxStyle.Critical) End Try End Sub End Class

--------------------------------------------------------------------------------

11 - Leer todo el contenido de un archivo de texto en una solo operacin, y almacenarlo en una variable ( My.Computer.FileSystem.ReadAllText )

Texto planoCopiar cdigo fuenteImprimir Option Explicit On

Public Class Form1

Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

Try Dim SPath As String = "c:\un_archivo.txt" Dim sContent As String = vbNullString

With My.Computer.FileSystem ' verifica si existe el path If .FileExists(SPath) Then ' lee todo el contenido sContent = .ReadAllText(SPath) MsgBox(sContent.ToString, MsgBoxStyle.Information, "Datos") Else MsgBox("ruta invlida", MsgBoxStyle.Critical, "error") End If End With ' errores Catch ex As Exception MsgBox(ex.Message.ToString, MsgBoxStyle.Critical) End Try End Sub End Class Option Explicit On

Public Class Form1 Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

Try Dim SPath As String = "c:\un_archivo.txt" Dim sContent As String = vbNullString

With My.Computer.FileSystem ' verifica si existe el path If .FileExists(SPath) Then ' lee todo el contenido sContent = .ReadAllText(SPath) MsgBox(sContent.ToString, MsgBoxStyle.Information, "Datos") Else MsgBox("ruta invlida", MsgBoxStyle.Critical, "error") End If End With ' errores Catch ex As Exception MsgBox(ex.Message.ToString, MsgBoxStyle.Critical) End Try End Sub End Class

--------------------------------------------------------------------------------

12 - Cargar directorios y archivos en un ListBox ( Mtodos GetFiles y GetDirectories) Colocar en un formulario dos controles ListBox

Texto planoCopiar cdigo fuenteImprimir Option Explicit On Option Strict On

Imports System.IO

Public Class Form1

Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

' Obtener todos los archivos .exe del directorio windows ( inclyendo subdirectorios ) For Each archivos As String In Directory.GetFiles("c:\windows", _ "*.exe", _ SearchOption.AllDirectories) ' extraer el nombre de la ruta archivos = archivos.Substring(archivos.LastIndexOf("\") + 1).ToString

' Agregar el valor al listbox ListBox1.Items.Add(archivos.ToString) Next

' Obtener todos los directorios del directorio c: ( un solo nivel ) For Each archivos As String In Directory.GetDirectories("c:\", "*.*", SearchOption.TopDirectoryOnly) ' extraer el nombre de la carpeta de la ruta completa archivos = archivos.Substring(archivos.LastIndexOf("\") + 1).ToString ' Agregar el valor ListBox2.Items.Add(archivos.ToString) Next

End Sub End Class Option Explicit On Option Strict On

Imports System.IO

Public Class Form1

Private Sub Form1_Load( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles MyBase.Load

' Obtener todos los archivos .exe del directorio windows ( inclyendo subdirectorios ) For Each archivos As String In Directory.GetFiles("c:\windows", _ "*.exe", _ SearchOption.AllDirectories) ' extraer el nombre de la ruta archivos = archivos.Substring(archivos.LastIndexOf("\") + 1).ToString ' Agregar el valor al listbox ListBox1.Items.Add(archivos.ToString) Next

' Obtener todos los directorios del directorio c: ( un solo nivel ) For Each archivos As String In Directory.GetDirectories("c:\", "*.*", SearchOption.TopDirectoryOnly) ' extraer el nombre de la carpeta de la ruta completa archivos = archivos.Substring(archivos.LastIndexOf("\") + 1).ToString ' Agregar el valor ListBox2.Items.Add(archivos.ToString) Next

End Sub End Class

--------------------------------------------------------------------------------

13 - Obtener propiedades Ejemplo que usa la clase FileInfo de system.IO para obtener algunas propiedades y datos de archivos ( el nombre , la fecha y la hora de modificacin en formato corto , el tamao en bytes y la extensin )

Colocar un control Listview, un button y un control TextBox

Cdigo fuente en el formulario principal

Texto planoCopiar cdigo fuenteImprimir Option Explicit On Option Strict On

Imports System.IO

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ' agregar columnas With ListView1 .Columns.Add("Nombre", 150)

.Columns.Add("Fecha y hora de modificacin", 150) .Columns.Add("Tamao - bytes ", 100) .Columns.Add("Extensin", 80)

.View = View.Details .GridLines = True End With Button1.Text = "Listar propiedades" TextBox1.Text = "c:\windows" End Sub

Private Sub Button1_Click( _ ByVal sender As System.Object, _ ByVal e As System.EventArgs) Handles Button1.Click

ListView1.Items.Clear() Try ' recorrer los ficheros en la coleccin For Each sFichero As String In Directory.GetFiles( _ TextBox1.Text, "*.*", _ SearchOption.TopDirectoryOnly)

' Crear nuevo objeto FileInfo Dim Archivo As New FileInfo(sFichero)

' Crear nuevo objeto ListViewItem Dim item As New ListViewItem(Archivo.Name.ToString)

' cargar los datos y las propiedades With item

' LastWriteTime - fecha de modificacin .SubItems.Add(Archivo.LastWriteTime.ToShortDateString & " " & _ Archivo.LastWriteTime.ToShortTimeString) ' Length - tamao en bytes .SubItems.Add(Archivo.Length.ToString)

' Extension - extensin .SubItems.Add(Archivo.Extension.ToString)

ListView1.Items.Add(item) ' aadir el item

End With

Next ' errores Catch ex As Exception Debug.Print(ex.Message.ToString) Beep() End Try

End Sub End Class

Hola

Si lo nico que quieres es cargar el archivo y reemplazar los ";" por tabuladores, te recomiendo esto:

Tienes que incluir la librera "Microsoft Scripting Runtime" en Proyecto->Referencias.

Dim FSO as New Scripting.FileSystemObject Dim TS as Scripting.TextStream Dim Txt as String

Set TS=FSO.OpenTextFile("c:\ruta\archivo.ext",ForReading) Txt=TS.ReadAll()

Txt=Replace(Txt,";",vbTab)

TS.Close Set TS=Nothing

Con eso, en "Txt" tendrs todo el contenido del archivo, pero con tabuladores en lugar de ";"

Saludos 09/03/2010

Usuario Hola. Gracias por tu ayuda... creo que con eso es suficiente.

Una preguntita.. si quisiera modificar una columna completa de datos (o eliminar), recuerda que el archivo de texto muestra el contenido de una serie de registros existentes; como haria? 09/03/2010

Experto Hola

En un archivo de texto plano, como el que obtienes de esta manera, la nica manera de borrar una lnea es reescribir todas las que estn por debajo de ella una lnea ms arriba. S que no es una solucin muy elegante, pero...

La cosa sera as:

' Quiero borrar la lnea 4

dim s as string

p=1

do while not TextStream.AtEndOfStream if p<>4 then s=s & TextStream.ReadLine() end if p=p+1

loop

Entonces en 's' tienes todas las lneas menos la 4, as que con guardar el contenido de la variable de nuevo en el TextStream, cerrndolo y abrindolo de nuevo para escritura, conseguiras el efecto deseado.

Para modificar, el sistema sera idntico.

Si lo que quieres es manipular una base de datos almacenada en texto, hay un controlador ODBC para este tipo de informacin ("Microsoft Text Driver (*.txt,*.csv)"), aunque nunca lo he probado. Lo que s es que no permite SQL.

Saludos 09/03/2010 Experto Hola de nuevo Me equivoqu, s que permite SQL. Para conectarte con una base de datos de texto, tienes que poner slo el directorio donde estn los archivos de texto. Luego puedes hacer consultas, considerando los nombres de los archivos como tablas: conexion.Open "driver={Microsoft Text Driver (*.txt; *.csv)};dbq=c:\temp" recordset.Open "select * from libro1.csv", conexion Parece que funciona Saludos

Dim nombre As String = idArchivo & ".txt" Dim ruta As String = rutaArchivos & "\" & nombre Dim objSR As StreamReader Dim texto As String Dim linea As String

Try objSR = New StreamReader(ruta, System.Text.Encoding.Default) Catch ex As FileLoadException Throw New Exception("No se ha podido cargar el archivo " & ruta) Catch ex As FileNotFoundException Throw New Exception("No se ha podido encontrar el archivo " & ruta) Catch ex As Exception Throw New Exception("Error desconocido en " & ruta) End Try

linea = objSR.ReadLine

Do Until linea = "" If linea.IndexOf("cadena_a_buscar", 12, 12) <> 12 Then texto += linea & vbNewLine End If linea = objSR.ReadLine Loop

objSR.Close()

Dim objSW As New StreamWriter(ruta, False, System.Text.UTF7Encoding.UTF7) objSW.Write(texto)

Imports System.IO

Dim sr As StreamReader = New StreamReader("C:\Prueba.txt") Dim texto As String Dim texto2 As String()

' Esta te la pone en un sola line todo el texto, incluyendo el salto de linea y retorno de ' carro texto = sr.ReadToEnd()

' Esta te pone cada linea en un elemento del arreglo texto2 = Split(texto, vbCrLf) RichTextBox1.Text = texto

suerte !!!

Imports System Imports System.IO Imports System.Collections

Module Module1

Sub Main() Dim objReader As New StreamReader("c:\test.txt") Dim sLine As String = "" Dim arrText As New ArrayList()

Do sLine = objReader.ReadLine() If Not sLine Is NothingThen arrText.Add(sLine) End If Loop Until sLine Is Nothing objReader.Close()

For Each sLine In arrText Console.WriteLine(sLine) Next Console.ReadLine() End Sub

End Module

Primero d todo disculpa por mi tardia respuesta, pero ya sabes las vacaciones ;). Supongo q ya lo habrs resuelto pero ahi va lo q us en su tiempo:

Dim lineas() As String, i As Long

' Obtengo todas las lneas contenidas en el archivo lineas() = Split(LeerArchivoTexto(nombreFichero), vbCrLf) ' Para borrar las lneas vacas, las cargo con un carcter especial For i = 0 To UBound(lineas) If Len(lineas(i)) = 0 Then lineas(i) = vbNullChar Next ' y luego utilizo la funcin Filter para borrar esas lneas. lineas() = Filter(lineas(), vbNullChar, False) ' Creo un array de cadena por cada lneas de texto y la almaceno en un elemento Variant ReDim valores(0 To UBound(lineas)) As Variant For i = 0 To UBound(lineas) valores(i) = Split(lineas(i), ";") Next ImportarCDRs = valores() End Function

Function LeerArchivoTexto(nombreFichero As String) As String Dim numlib As Integer, isOpen As Boolean On Error GoTo Manejador_Error ' Obtengo el siguiente nmero libre de archivo numlib = FreeFile() Open nombreFichero For Input As #numlib

' Se ha abierto el fichero sin problemas isOpen = True ' Leo todo el contenido en una nica operacin LeerArchivoTexto = Input(LOF(numlib), numlib) ' Cierro el archivo Manejador_Error: If isOpen Then Close #numlib If Err Then Err.Raise Err.Number, , Err.Description End Function

You might also like