Resumen Importar archivo de texto a una base de datos   (2 mensajes )

-----BEGIN PGP SIGNED MESSAGE-----

Hola Marcelo:

Como ahora tengo un rato y me gusta esto de 'darle al coco', vamos a ver
qué nos sale:
El código sería algo así:

'*************************************************
' Comienza el código
'*************************************************

Private Sub CargarDatos ()
    Dim rstRegistro As Recordset
    Dim rstTexto As String

    Set rstRegistro = DB.OpenRecordSet (dbOpenDynaset)

      'abres el archivo para lectura
    open "nombre_archivo.txt" for input as #1

      'loop para leer hasta el fin del fichero
    Do While (Not EOF(1))
        'lee una linea de
        Line Input #1,strTexto
        AsignarARegistro rstRegistro, strTexto
    loop
    rstRegistro.Close
    Close #1 {No recuerdo cómo se cerraba un fichero}
End Sub

Private Sub AsignarARegistro (rstRegistro As Recordset, strTexto as String)
    Dim intPosicion As Integer
    Dim intFin As Integer

    ' Hallamos la posición del 1er separador
    intPosicion = Instr (1, strTexto, ";")

    ' Devuelve 0 si no encuentra la separacion
    ' Deberías comprobar tamb. si puede haber 1 SOLO dato
    ' en la linea --> no usaría separación, o sí ¿?
    if (intPosicion <> 0) then
        with rstRegistro
            .AddNew    
            ' Extraemos desde el principio hasta
            ' el 1er separador
            ![Nombre] = Mid (strTexto, 1, intPosicion)
             '¿ Mid (strTexto, 1, intPosicion - 1) ?

            ' Hallamos la posición del 2º separador
            intFin = Instr (intPosicion, strTexto, ";")

            ![Apellido] = Mid (strTexto, intPosicion, intFin)
                 '¿ Mid (strTexto, intPosicion, intFin - 1) ?

            'Como sólo hay 2 separadores, pues extraemos
            ' desde el 2º hasta el final
            ![Direccion] = Mid (strTexto, intFin)
            .Update
        End With
    End If
End Sub
            
'*************************************************
' Termina el código
'*************************************************

* Nota: Deberías comprobar que extrae las cadenas desde la posicón
correcta. Puede que tamb. extraigan el ";". Para eso chequea los valores
de: intPosicion y intFin, y si fallan, prueba a + o a - 1 a la posición,
tal y como te pongo entre comentarios.

Espero que te sirva.

Si tienes más dudas, ya sabes donde encontrarme.

Bye !!


At 10:18 p.m. 21/05/1998 GMT-3:00, you wrote:
> Hola a todos, tengo que cargar un archivo de texto e ir tomado de
>cada linea del archivo de texto datos para copiarlos a un campo de una base
>de datos. Ejemplo la Primera linea es:
>nombre;apellido;direccion
>yo se que es con input #1 pero como le digo que el ";" es el separador de
>cada campo?

>Marcelo F. Rodriguez

-----BEGIN PGP SIGNATURE-----
Version: PGPfreeware 5.5.3i for non-commercial use <http://www.pgpi.com>
Comment: PGP key disponible en: <http://www.ctv.es/USERS/josejrp>

iQEVAwUBNWU0oAsdKmbxWk6tAQH9dQf/eY2VrxXvqKD936X1hQlvcGkchrhxwBE6
3SkXQVdVXjMWWlAIJt5O/2cHbRmDgX4EJ6IUhHTaCqrTOSr+DxSO/ruKgv7ineZf
LLXiwuG+iHJToA1ujO+q3GFDUvYbXx2Uty5jFg2iRNFjnVtNCh8Gt2LyUf2DWJvH
l+6fUeeG62uufYeCfI48Qnh65UNFUMbDCergp6cwxoaPMZ8bir4Snlhvs8ZPu9cU
MkYATh74MEEY79RWxKi6HE0OvT41/xsiCpOcmEqkJjU7xLnNcw21NnWssfrVXaha
Av9sG3fl190lzaHcBNTa8pRcpOKJfs8eS6QeIVb615cvEWlBv+Kltg==
=8z8R
-----END PGP SIGNATURE-----

Un saludo
________________________________
                     José Julio Ruíz
 Desarrollador de aplicaciones informáticas
             Mantenimiento de sistemas.
==========================================
                   josejrp@iname.com
==========================================
              (desde Segovia - España)
                    ICQ => 8834523
==========================================

Mensaje enviado por Josep Robles López <JosepRL@blanquerna.url.es>

Adriana,

Yo utilizo esta rutina para importar archivos de texto delimitado, espero te sirva
'
' rutina que permite importar fichero de textos delimitados a un fichero .mdb
'
' strDelim= Caracter de separación o delimitador
' CNSTRING= Cadena de conexión para ADO
' strFile=Nombre del fichero de Texto
' DbName= Nombre de las base de datos
' rsName= Tabla de la base de datos
'


Public Sub ImportDelimFileADO(strFile As String, strDelim As String, CNSTRING As String, rsName As String)
'Fent servir ADO
Dim CN As ADODB.Connection
Dim RS As ADODB.Recordset
Dim intIndex As Integer
Dim intPos As Integer
Dim intPos2 As Integer
Dim strLine As String
Dim strText As String
Dim intRecNum As Integer
Dim intField As Integer

Close #1
Open strFile For Input As #1
Set CN = New ADODB.Connection
CN.ConnectionString = CNSTRING
CN.ConnectionTimeout = 30
CN.Open

' Abre Recordset
Set RS = New ADODB.Recordset
RS.CursorType = adOpenKeyset
RS.LockType = adLockOptimistic 'adLockBatchOptimistic
RS.Open "Select * From " & rsName, CN, , , adCmdText 'adCmdTable

' inicializa las variables
intIndex = 0
intRecNum = 0
intPos = 0
intPos2 = 1
intField = 0

' lectura del fichero hasta que termina
Do Until EOF(1) = True
   ' leer la primera linea de texto
   Line Input #1, strLine
   RS.AddNew
   Do Until intField = RS.Fields.Count '- 1
      ' busca la primera posicion
      intPos = InStr(intPos2, strLine, strDelim)
      ' if intpos = 0 se ha encontrado el final de linea
      If intPos = 0 Then intPos = Len(strLine) + 1
      ' texto entre delimitadores
      strText = Mid(strLine, intPos2, intPos - intPos2)
      ' incrementa hasta la nueva posicion
      intPos2 = intPos + 1
      ' traspasa los datos
      RS.Fields(intField) = strText
      ' incrementa el contador de campos
      intField = intField + 1
   Loop
   '.MoveNext
Loop
RS.Close
CN.Close
Close #1
End Sub


Josep Robles López
Servei Informàtica EUIFB
JosepRL@blanquerna.url.es

-----Mensaje original-----
De: Adriana Fachal [mailto:adrif@infovia.com.ar]
Enviado el: miércoles, 02 de mayo de 2001 0:12
Para: visualbasic
Asunto: vb-esp : Archivos de Texto

Chicos ...

¿Alguien podría decirme como puedo hacer para generar un archivo de texto a partir de una tabla de acces? .... ¿y el proceso inverso.... , es decir, como puedo tomar los datos de un archivo de texto en una tabla de acces? ...

Desde ya les agradezco de antemano ...

Adriana.



Resumen Resumen

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com