Jump to content

ler linhas especificas de arquivo txt em vb.net


cesarini
 Share

Recommended Posts

Bom noite;

Tenho um arquivo texto com a seguinte estrutura

N1000000000000000000000000000000 2757		 IRazao Socialll
N2POL8887777FRENTE DE LOJA								 3.1	
N3COMPONENTFACTORY.KRYPTON.TOOLKIT.DLL			 D198B64CDE8741EB7EB02D0A84A52D0D
N3CRIPTOSERASAVB.DLL							 691C02AE8C48214D88D2F8F39D6F02EA
N3FRENTELOJA.EXE								 75C1533D5AC67612E9EF84B166B750D6
N3INFRAGISTICS2.SHARED.V8.2.DLL					 20DB745E5AB0CF6D8DB35C2CB50789D1
N3INFRAGISTICS2.WIN.MISC.V8.2.DLL				 E61761E47712AEDAF238F0310A73A598
N3INFRAGISTICS2.WIN.ULTRAWINEDITORS.V8.2.DLL	 EA795E5C994BCD71B6268B5C96BD7C5F
N3INFRAGISTICS2.WIN.V8.2.DLL					 CF9DC66435935AFB2216596D7811F42E
N3INTEROP.CRIPTOSERASAVB.DLL					 F27B8CFFE98261EBEFFC23A82D565D84
N3SAPLOGON.EXE									 9F275A078241E945B170A4ADE9B165E2
N983729004000132250644851	 000009
EAD7FD5B078748700F331E04293EF225FED669B38CC9AE7903B7F525BB5166CD02C0CB91562967652B1AB2B0F59F763F44539A711E8DB9123F0F05CFBC1D6CBFB81CE255329D1DE7C31D6F64F418809502FF8ED9818F3089348146543BA6A87789BFD168C871666D01D3A762D8B46D4949CACA10357168287654848317192AA3881

Preciso ler somente as linhas N3 e pegar somente o nome do arquivo e md-5 do mesmo e salvar nome do arquivo em uma coluna do meu DB e o md-5 em outra coluna do DB, como poderia fazer nunca trabalhei com leitura de TXT's antes ?

Obrigado

Link to comment
Share on other sites

Boas,

para a parte de ler o ficheiro e extrair as colunas, podes usar algo assim:

' Passar por todas as linhas do ficheiro
For Each linha As String In File.ReadAllLines("teste.txt")

   ' Caso o conteúdo da linha inicie por N3
   If linha.StartsWith("N3") Then
       ' Procura a posição do caracter separador (espaço)
       Dim posSeparador = linha.IndexOf(" ")

       ' Lê o conteúdo antes do caracter separador como nome do ficheiro
       Dim nomeFicheiro As String = linha.Substring(0, posSeparador)
       ' Lê o conteúdo depois do caracter separador como hash do ficheiro, limpando qualquer espaço antes e depois
       Dim hashFicheiro As String = linha.Substring(posSeparador).Trim()

       ' Inserir na BD
       ' ...

   End If
Next

Só tens de usar as variaveis nomeFicheiro e hashFicheiro para inserir na BD

  • Vote 1
Link to comment
Share on other sites

Muito Obrigado Funcionou muito bem, mas aproveitando;

Vamos supor que eu tenho um arquivo com uma estrutura definida :

Id : vai da coluna 0 à 3

Nome: vai da coluna 4 à 30

Hash: vai da coluna 31 à 63

como eu faria para pegar somente da coluna 4 à 30 que seria referente ao nome, sem precisar utilizar o separador somente selecionando as colunas, é possível ?

Link to comment
Share on other sites

Muito bom Nelsonr Obrigado;

Para compartilhar com vocês, achei deste modo também:

For Each arquivo As [string] In OpenFileDialog1.FileNames
                For Each linha As String In File.ReadAllLines(arquivo)
                    ' Caso o conteúdo da linha inicie por N3
                    If linha.StartsWith("N3") Then
                        Dim nomeFicheiro As String = Mid(linha, 3, 50).Trim()
Dim hashFicheiro As String = Mid(linha, 53, 85)
                        ' Inserir na BD

Utilizando o MID( variavel_com_linha_arquivo, coluna inicio, coluna termino)

Obrigado.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.