Ir ao conteúdo

Posts recomendados

Postado

Olá,

Preciso importar diariamente um txt que possui mais de 2 milhoes de linhas, mas na verdade uso por volta de 20.000 registros.

como eu conseguiria importar apenas os registros se um determinado campo obedecer a uma condição?

 

Por exemplo no txt em anexo, eu gostaria de importar apenas os registros que no campo estado civil estiver excrito "solteiro". 

E não precisaria importar todos os dados da mesma linha, por exemplo, só traria o nome, idade e estado civil. 

 

Obrigado!

exemplo.txt

  • Solução
Postado

@Kleber Bispo  Edite o caminho correto do arquivo e índice do campo se for preciso.

 

Neste caso o índice 0 é nome, 1 idade e 3 estado civil

 

Sub Macro()
    Dim Registro    As String
    Dim L           As Long
     
    Open "C:\Exemplo.txt" For Input As #1
    
    Do Until EOF(1)
        Line Input #1, Registro
        If Split(Registro, ";")(3) = "solteiro" Then
            L = L + 1
            Cells(L, 1) = Split(Registro, ";")(0)
            Cells(L, 2) = Split(Registro, ";")(1)
            Cells(L, 3) = Split(Registro, ";")(3)
        End If
    Loop
    
    Close #1
End Sub

 

  • Curtir 1
Postado
24 minutos atrás, Midori disse:

@Kleber Bispo  Edite o caminho correto do arquivo e índice do campo se for preciso.

 

Neste caso o índice 0 é nome, 1 idade e 3 estado civil

 


Sub Macro()
    Dim Registro    As String
    Dim L           As Long
     
    Open "C:\Exemplo.txt" For Input As #1
    
    Do Until EOF(1)
        Line Input #1, Registro
            If Split(Registro, ";")(3) = "solteiro" Then
                L = L + 1
                Cells(L, 1) = Split(Registro, ";")(0)
                Cells(L, 2) = Split(Registro, ";")(1)
                Cells(L, 3) = Split(Registro, ";")(3)
            End If
    Loop
    
    Close #1
End Sub

 

@Midori Obrigado pelo retorno.

Vi que no momento que abre o arquivo, passou o parametro (acho que é um parametro): For Input as #1 e depois esse #1, utilizou no Do Until e na primeira linha depois do Do Until.

 

Eu conseguiria utilizar o GetOpenFileName para abrir mais de um txt? como é possivel adaptar esse #1? Não entendi para que ele serve.

 

Desculpa se eu estiver abusando...

Postado

@Kleber Bispo  #1 é o identificador do arquivo, poderia ser uma variável no lugar do 1 ou outro número se quiser abrir mais de um sem fechar o anterior.

 

Para abrir vários você pode ir fechando o que estiver aberto (Close #1) antes de abrir o próximo.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!