Ir para conteúdo
Fórum Script Brasil
  • 0

Tratar Arquivo em txt de Mensagens EDI


Carlos Henrique Rocha

Pergunta

Olá pessoal, preciso de uma ajuda pois já faz algum tempo que não trabalho com VB no acces e preciso de suporte no meu novo emprego!

Estou criando um programa para estrutura arquivos em "txt" de EDI. No arquivo codificado no formato EDI, preciso importar para uma tabela do access para realizar conferencias e verificações da informações do arquivo.

Trata-se de segmentos da mensagens EDI e preciso organiza-la em uma tabela de banco de dados do MS Access mesmo.

Minha necessidade:

Encontrar o segmento "UNB+UNOA", depois 2 caracterer salvar em um campo de registro da tbl o valor "901227033"

Encontrar o segmento "BGM+", depois de 4 caracterer salvar em um campo de registro da tbl o valor "020329-3"

Encontrar o segmento "DTM+", depois de 4 caracterer salvar em um campo de registro da tbl o valor "201103121230"

Encontrar o segmento "GIR+", depois de 14 caracterer salvar em um campo de registro da tbl o valor "Q00000000"

Encontrar o segmento "LIN+", depois de 14 caracterer salvar em um campo de registro da tbl o valor "96826050ZR"

Encontrar o segmento "UNZ+", encerra a extração do registro específico e depois começa a extração de outros registros seguindo a mesma regra!

Obs: no campo GIR+ pode haver outros codigos de pedidos (ex:Q00000001, Q00000002, ...) para o mesmo item "96826050ZR"

Na mesma mensagem vai existir outros itens com outras informações de registros.

==> A dúvida é: Preciso encontrar dentro de arquivos de txt, determinados segmentos que identificam a informação, após alguns caracteres, importar esta informação dentro de um tamanho específico para uma tbl. Não é um arquivo delimitado e nem com informações com tamanho fixo.

=====ESTRUTURA DA MENSAGEM======

UNB+UNOA:3+901227033+1552100554BR00+110311:1948+22906++++0++0'UNH+22906+DESADV:D

:96A:UN:A01051++1'BGM+351+020329-3'DTM+132:201103121230:203'DTM+137:201103111948

:203'MEA+AAX+AAD+KGM:0'NAD+CN+006090203633400000::5'LOC+11+8MEGED'NAD+CZ+0060901

22703300000::5'NAD+SE+006090122703300000::5'RFF+ADE:31152K 01'EQD+TE+PEG0001'CP

S+1++1'PAC+2++14179:RJ1:92'QTY+52:1:PCE'PCI+17'RFF+AAT:176120'GIR+3+176120:ML++Q

00000000:BU'PCI+17'RFF+AAT:176121'GIR+3+176121:ML++Q00000000:BU'LIN+++96826050ZR

:IN++0'QTY+12:2:PCE'ALI+BR'RFF+ON:17002323'UNT+25+22906'UNZ+1+22906'

UNA:+.? 'UNB+UNOA:3+911210151+1552100554BR00+110311:0000+565870001++++0++0'UNH+1

+DESADV:D:96A:UN:A01051++1'BGM+351+173181'DTM+132:201103110000:203'DTM+137:20110

3110000:203'MEA+AAX+AAD+KGM:1'NAD+CN+006090203633400000::5'LOC+11+7858MN'NAD+CZ+

006091121015100000::5'NAD+SE+006091121015100000::5'RFF+ADE:31163X 01'EQD+TE+PSA

0000'CPS+1++1'PAC+3++14026::92'QTY+52:1:PCE'PCI+17'RFF+AAT:1499987'GIR+3+1499986

:ML++B00000000:BU+20110311:BX'PCI+17'RFF+AAT:1499988'GIR+3+1499987:ML++B00000000

:BU+20110311:BX'PCI+17'RFF+AAT:1499989'GIR+3+1499988:ML++B00000000:BU+20110311:B

X'LIN+++9666768280:IN++0'QTY+12:3:PCE'ALI+BR'RFF+ON:17004621'UNT+28+1'UNZ+1+5658

70001'

=================================

Estou fazendo em VB no access pois é a que a empresa trabalha (access) e tenho que desenvolver soluções dentro dela.

Desde já agradeço a ajuda e isto me ajudará bastante dentro da minha nova jornada!

Carlos

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
alguém sabe ajudar?????

Obrigado!

Carlos

utilize o instr() para achar o segmento que você que você quer. Por exemplo:

instr("UNB1234","12")

ele vai ser true porque existe 12 dentro de UNB1234

Ok, obrigado!

Consegui pegar o 1º registro, mas não consegui fazer ele andar e pegar os outros registros dentro do mesmo segmento. Veja o exemplo:

PosRef = InStr(1, MSG_DESADV_1, "BX'LIN+++", 1) 'marca a posição

txtRef = Mid(MSG_DESADV_1, PosRef + 9, 10) 'copia a informação a partir da posição e com o tamanho 10 caracteres

Como crio este vetor? Pois no arquivo de EDI há outros campos "BX'LIN+++" e preciso capturar a informação dentro dele!

Obrigado!

Carlos

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...