MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


2 participantes

    [Resolvido]Arquivo TXT

    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]Arquivo TXT Empty Arquivo TXT

    Mensagem  valliclay 12/4/2013, 01:43

    Boa noite!

    Pessoal

    Alguém pode me ajudar com o arquivo baixo:

    Temo um arquivo txt e o mesmo contem varias linhas e preciso ler a linha e colocar em colunas no access, a minha dificuldade é que a linha está assim:(linha com o numero 5)

    Feeder Table Mode: = Joint Mode
    Address Parts Name L/R Feeder Name Number of use Mount Comment
    1
    2
    3
    4
    5 SE070104Z80 L Wide08 Forward02 Small paper 22 C200,C2067,C2068,C20
    - - - - - 70,C2072,C2073,C728,
    - - - - - C196,C2071,C2074,C45
    - - - - - 6,C720,C2091,C381,C4
    - - - - - 34,C617,C634,C656,C6
    - - - - - 66,C667,C668
    SD028000080 R Wide08 Forward02 Small paper 20 R2044,R2045,R2046,R2
    - - - - - 061,R2062,R283,R532,
    - - - - - R557,R635,R678,R697,
    - - - - - R876,PR102,PR124,PR1
    - - - - - 30,PR66,PR80,R2132,R
    - - - - - 2102,R565
    6 SE070104Z80 L Wide08 Forward02 Small paper 21 C671,C674,C680,C684,
    - - - - - C688,C689,C690,C748,
    - - - - - C749,C752,C754,C761,
    - - - - - C767,C772,C433,C618,
    - - - - - C619,C620,C657,C658,
    - - - - - C737

    A tabela precisa ficar assim:

    coluna:

    A b c e f
    5 SE070104Z80 L 22 C200
    5 SE070104Z80 L 22 C2067
    5 SE070104Z80 L 22 C2068
    5 SE070104Z80 L 22 C2070
    5 SE070104Z80 L 22 C2072
    5 SE070104Z80 L 22 C2073

    Como podemo observar que na colunas do access tenho que repetir as colunas a,b,c,e mas a F não se repete.

    Observe que na linha do txt as informações estão separadas por " " e por "," nas a dificuldade e continuar lendo as outras informações quando muda de linha

    5 SE070104Z80 L Wide08 Forward02 Small paper 22 C200,C2067,C2068,C20
    - - - - - 70,C2072,C2073,C728,
    - - - - - C196,C2071,C2074,C45
    - - - - - 6,C720,C2091,C381,C4
    - - - - - 34,C617,C634,C656,C6
    - - - - - 66,C667,C668

    Como posso fazer para continuar lendo a linha como por exemplo; começo a ler C200,C2067,C2068
    o C2070 esta dividido em duas linhas e preciso continuar lendo C2070, C2072 e assim por diante.

    Desde já agradeço a todos
    avatar
    ton0612
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 275
    Registrado : 30/03/2011

    [Resolvido]Arquivo TXT Empty Re: [Resolvido]Arquivo TXT

    Mensagem  ton0612 12/4/2013, 12:39

    Ola amigo, bom dia tudo bem?

    eu também estou pesquisando algo sobre importação de arquivo txt.
    acredito que no seu caso tem algo aqui no forum que pode resolver,
    Veja este link

    porem ele ensina como se importa, mas percebi que você precisa de algo que use mais de uma vez a linha e acredito que o comando split pordera te ajudar.

    Código:

    Dim S As Variant, T As Integer, N As Integer, Qtde As Integer
    Dim Prod As String, ProdFormato As String, Gr As String

    'neste caso o ProdFormato retorna um valor = 32x40  ou 42x50, 37x46x13 e por ai vai.
    ' o que o código faz é separar 32 do 40 pelo "x" e entao ele multiplica e caso tenha 3 partes multiplica um pelo outro
    ' 37*46*13


    S = Split(ProdFormato, "x")
    T = 1
    For N = 0 To UBound(S) 'determina a qtde de split pelo numero de "x"
        T = T * S(N) 'T = 1 * 32 depois T = 32 * 40 e acaba. no de 3 partes ele faz 1º 1*37, 2º 37*46, 3º 1702*13. Entao tenho o valor de T. a diferença é que vc vai fazer com que em cada ciclo "For...Next" ele insira uma linha ".Addnew"
    Next


    Eu também vou tentar fazer aqui assim que der um tempinho.
    Mas se quiser poderá ir adiantando.


    PS. ainda não sou bom feito diversos mestres neste site... se alguém tiver uma idéia mais fácil, também me sentirei agradecido.
    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]Arquivo TXT Empty Re: [Resolvido]Arquivo TXT

    Mensagem  valliclay 13/4/2013, 19:06

    Bom dia!

    ton0612

    Obrigado pela dica
    avatar
    valliclay
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 34
    Registrado : 09/09/2011

    [Resolvido]Arquivo TXT Empty Resolvido

    Mensagem  valliclay 14/4/2013, 20:43

    Boa tarde!

    A Todos

    Montei o código abaixo código através das dicas dos colegas do fórum para resolver meu problema acima.

    Private Sub import_txt()

    Dim LINHA As String
    Dim rs As DAO.Recordset
    Dim Matriz() As String, NO As String, Tb As String, SL As String, PN As String, QTD As Long, MM As String, X As Variant, E As Variant
    Dim caminho As String, L As String, RF As String, RF1 As String, P As String, M As String, A As String, B As String, Q As String, N As Integer


    caminho = "C:\Documents and Settings\clayton_valli\Desktop\Feeder list Programa\Feeder Lsit\ACER\Q5WPH\N252\SIDE_S.TXT"

    f = FreeFile

    Set rs = CurrentDb.OpenRecordset("Feeder")

    Application.DoCmd.SetWarnings False
    DoCmd.RunSQL "DELETE * FROM feeder;"

    Open caminho For Input As #f

    Line Input #f, LINHA

    NO = Mid(LINHA, 6, 15)
    L = Mid(LINHA, 14, 1)
    A = 1


    Do While Not EOF(f) And Mid(LINHA, 1, 15) <> "TrayLayout data"

    If Mid(LINHA, 1, 5) = "Table" Then

    B = Mid(LINHA, 10, 10)

    Select Case A
    Case 1
    Tb = L & "A" & B
    Case 2
    Tb = L & "B" & B
    Case 3
    Tb = L & "C" & B
    Case 4
    Tb = L & "D" & B
    Case 5
    Tb = L & "E" & B
    End Select

    Line Input #f, LINHA ' Pula a 1ª linha

    Do While Mid(LINHA, 1, 5) <> "Table" And Mid(LINHA, 1, 15) <> "TrayLayout data"

    If Len(Trim(Mid(LINHA, 8, 15))) = 11 Then

    If Mid(LINHA, 7, 1) <> " " Then
    P = Mid(LINHA, 6, 2)
    SL = P & Mid(LINHA, 31, 1)
    Else
    SL = P & Mid(LINHA, 31, 1)
    End If

    PN = Mid(LINHA, 9, 11)
    MM = Mid(LINHA, 38, 2) & "/" & Mid(LINHA, 48, 2)
    Q = Mid(LINHA, 34, 100)
    c = 0
    X = Split(Q, " ")
    For E = 0 To UBound(X)
    If X(E) <> "" Then
    If IsNumeric(X(E)) Then
    QTD = X(E)
    Else
    c = c + 1
    End If
    End If
    Next E

    RF1 = Mid(LINHA, 34, 100)
    c = 0
    X = Split(RF1, " ")
    For E = 0 To UBound(X)
    If X(E) <> "" Then
    RF = X(E)
    c = c + 1
    End If
    Next E
    Line Input #f, LINHA ' Pula a 1ª linha

    If Mid(LINHA, 7, 3) = "- -" Then
    Do While Mid(LINHA, 7, 3) = "- -"
    RF1 = Mid(LINHA, 34, 100)
    c = 0
    X = Split(RF1, " ")
    For E = 0 To UBound(X)
    If X(E) <> "" Then
    RF1 = X(E)
    c = c + 1
    End If
    Next E
    RF = RF & RF1
    Line Input #f, LINHA ' Pula a 1ª linha

    Loop
    End If
    c = 0
    X = Split(RF, ",")
    For N = 0 To UBound(X)
    If X(N) <> "" Then
    rs.AddNew
    rs!NOME = NO
    rs!Table = Tb
    rs!Slot = SL
    rs!PN = PN
    rs!QTD = QTD
    rs!MM = MM
    rs!REF = X(N)
    rs.Update

    c = c + 1
    End If
    Next N



    Else
    Line Input #f, LINHA ' Pula a 1ª linha
    End If
    Loop
    If Mid(LINHA, 1, 5) = "Table" And Mid(LINHA, 10, 10) = "1" Then
    A = A + 1
    End If
    Else

    Line Input #f, LINHA ' Pula a 1ª linha

    End If


    Loop

    Close #f
    rs.Close

    End Sub

    Com o código acima resolvi meu problema na leitura do arquivo txt.

    Desde já agradeço a todos do fórum.



    avatar
    ton0612
    Avançado
    Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 275
    Registrado : 30/03/2011

    [Resolvido]Arquivo TXT Empty Re: [Resolvido]Arquivo TXT

    Mensagem  ton0612 15/4/2013, 11:36

    Uau! e que código kkkk
    Obrigado pelo retorno.

    Conteúdo patrocinado


    [Resolvido]Arquivo TXT Empty Re: [Resolvido]Arquivo TXT

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 20/5/2024, 02:56