Inquiridor
Importar texto delimitado para varias tabelas

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
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
-
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.