Visual Basic para Aplicaciones - Ayuda lectura archivo de texto

Life is soft - evento anual de software empresarial
   
Vista:

Ayuda lectura archivo de texto

Publicado por eduardo (1 intervención) el 17/11/2009 17:30:17
Hola, hice una busqueda rapida por el foro y encontre algo de material pero non me resulta facil entenderlo... aclaro que soy principiante en visual basic de access
concretamente tengo que leer un file .txt separado por el caracter "|" con columnas variables (700 en total) por record, y despues extraer los datos para insertarlos a una tabla en access (varias tablas). Alguien podria ayudarme, no se por donde empezar, supongo que tengo que abrir el file y mediante un bucle leer los datos hasta encontrar el caracter "|" para despues de algun modo pasarlos a la tabla.... Les agradezco de antemano, aunque sea una idea de como comenzar... Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda lectura archivo de texto

Publicado por Zeus Alberto Paez Renteria (7 intervenciones) el 29/01/2010 20:52:02
Puedes utilizar este codigo quiza te sirva. El strg es la variable que toma los datos renglon por renglon para detectar el caracter puedes utilizar el comando InStrRev(strg, "|"), combinado con el Left, Mid, y Rigth seguro obtienes lo que necesitas. Saludos

Sub Import_TXT_File()
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' START ImportTextFile
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Dim strg As Variant
Dim EntireLine As String
Application.ScreenUpdating = False
'On Error GoTo EndMacro:
'Get File Name
FName = Application.GetOpenFilename("Text Files (*.txt), *.txt", , "Choose File to Import")
'Open The File
Open FName For Input Access Read As #1
'Set the value of i equal to the row number
'From where you want to start pasting
i = 1
While Not EOF(1)
Line Input #1, EntireLine
strg = EntireLine
'check for =====
If strg <> "=====" Then
If Len(Trim(strg)) > 5 Then
'Change "Sheet1" to relevant Sheet Name
'Change "A" to the relevant Column Name
Sheets("Sheet1").Range("A" & i).Value = Left(strg, 4)
Sheets("Sheet1").Range("B" & i).Value = Right(strg, 5)
ElseIf Len(Trim(strg)) = 5 Then
Sheets("Sheet1").Range("B" & i).Value = Left(strg, 5)
ElseIf Len(Trim(strg)) = 4 Then
Sheets("Sheet1").Range("A" & i).Value = Left(strg, 4)
End If
i = i + 1
End If
Wend
Application.ScreenUpdating = True
Close #1
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' END ImportTextFile
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar