none
Importar texto delimitado para varias tabelas RRS feed

  • Discussão Geral

  • Boa Noite pessoal.

    Estou com uma duvida, na realidade ja existem componentes delphi que fazem o que eu quero, porem eu gostaria de fazer esta aplicacao para fins academicos, e com a intencao de melhorar o meu conhecimento em vb.net.

    O problema e o seguinte: 

    tenho o seguinte arquivo txt, peguei este como exemplo no site linhadecodigo.

    C400|2D|MP-2100 TH FI|BE050872800000005215||
    |C405|20110106|6|000088|001004|178580,87|0,00|
    |C420|OPNF|50,00|||
    |C490|090|5929|0|50,00|0|0| |
    |C405|20110107|6|000089|001007|178581,87|1,00|
    |C420|I1|1,00|||
    |C425|1234567890123|1,000|UN|1,00|0|0|
    |C460|2D|00|001005|20110107|1,00|0|0|00000000000000||
    |C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
    |C490|040|5929|0|1,00|0|0| |
    |C405|20110111|6|000090|001022|184043,81|5461,94|
    |C420|OPNF|34189,00|||
    |C420|01S0500|12,00|01|Totalizador 01|
    |C420|I1|5449,94|||
    |C425|1234567890123|68,000|UN|5449,94|0|0|
    |C460|2D|00|001012|20110111|5461,94|0|0|00000000000000||
    |C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
    |C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
    |C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
    |C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|
    |C470|1234567890123|1,000||UN|1,00|040|5929|0,00|0|0|

    Preciso saber a forma correta de se importar este arquvio para um dataset,

    O problema e o seguinte, o registro |C460| e um registro pai, e os |C470| sao registros filhos. Porem os |C470| variam, nunca sao os mesmos.

    Como vincula-los na hora da importacao??

    Obrigado.




    • Editado reis27 quinta-feira, 20 de novembro de 2014 00:59 Erro de digitacao
    • Tipo Alterado Ricardo Barbosa Cortes segunda-feira, 24 de novembro de 2014 16:01 Aguardando retorno do usuário
    quinta-feira, 20 de novembro de 2014 00:58

Todas as Respostas

  • Por exemplo esse arquivo do sped fiscal que você deu como exemplo, eu tenho uma aplicação que funciona da mesma forma, importa os arquivos de acordo com o tipo de registro, o que você pode fazer é identificar o registro pai e depois ler o registro filho, como por exemplo a ideia seria essa:

    'Lê o conteudo por registro
    Dim REG_C470 = From linha470 In File.ReadAllLines("arquivo.txt") Where linha470.Contains("C470") AndAlso linha470.Contains("C460")linha470
    
    'Variavel para armazenar os campos delimitados
    Dim dados As String() = Nothing
    'Contador
    Dim linha As Integer = 0
    For Each linhas As var In REG_C470
    	dados(linha) = linhas
    
    			'COloco os dados dessa linha no dataset
    	If dados(0).Contains("C1470") Then
    	Else
    			'coloco este no dataset
    		'Aqui pegaria os filhos C460
    	End If
    Next


    quinta-feira, 20 de novembro de 2014 11:36
  • Valeu, vou fazer um teste e lhe dou um retorno.

    Comecei a trabalhar com programacao faz ums 2 meses, ja estou conseguindo importar textos simples, mas esse do sped e meio complicado.

    O que eu percebi e que existem varias formas de executar as mesmas coisas, mas como programacoes diferentes, e isto esta confundindo minha cabeca ainda....

    Obrigado.


    quinta-feira, 20 de novembro de 2014 13:15