Importar txt com várias estruturas de registros no mySQL
Olá, Pessoal!
Preciso importar um arquivo txt, onde nele tem diferentes estruturas de registros, originados de uma aplicação delphi/firebird que exportou o arquivo.
São 3 tipos de registros, são eles:
1 - Cabeçalho: identificado pelas duas primeiras colunas de valor 01
2 - Consolidado: identificado pelas duas primeiras colunas de valor 02
3 - Individualizado: identificado pelas duas primeiras colunas de valor 03
O cabeçalho pode ser ignorado.
Preciso trabalhar com todos os campos em uma mesma tabela, por isso necessito pescar cada campo do txt e organiza-los dentro da tabela do BD.
No excel, consegui separar e colocar tudo em uma mesma matriz. Joguei todos os registros dentro de uma única coluna e fui preenchendo os campos da planilha separando com formulas como essa "=SE(A5="";"";EXT.TEXTO(Producao!A2;'Layout BPAI'!D$2;'Layout BPAI'!C$2))".
Conteúdo do txt
Serão importados apenas os dados do consolidado e individualizado
Layout da interface texto CONSOLIDADO( identificado pelas duas primeiras colunas de valor 02)
Nome | Tam | Inicio | Fim
id_registro 2 1 2
id_unidade 4 3 6
competencia 6 7 12
procedimento 6 13 18
qtd 5 19 23
Layout da interface texto INDIVIDUALIZADO(identificado pelas duas primeiras colunas de valor 03)
Nome | Tam | Inicio | Fim
id_registro 2 1 2
id_unidade 4 3 6
competencia 6 7 12
mat_profissional 6 13 18
procedimento 6 19 24
nm_usu 30 25 55
cep_usu 8 56 63
Obrigado pela atenção!
Preciso importar um arquivo txt, onde nele tem diferentes estruturas de registros, originados de uma aplicação delphi/firebird que exportou o arquivo.
São 3 tipos de registros, são eles:
1 - Cabeçalho: identificado pelas duas primeiras colunas de valor 01
2 - Consolidado: identificado pelas duas primeiras colunas de valor 02
3 - Individualizado: identificado pelas duas primeiras colunas de valor 03
O cabeçalho pode ser ignorado.
Preciso trabalhar com todos os campos em uma mesma tabela, por isso necessito pescar cada campo do txt e organiza-los dentro da tabela do BD.
No excel, consegui separar e colocar tudo em uma mesma matriz. Joguei todos os registros dentro de uma única coluna e fui preenchendo os campos da planilha separando com formulas como essa "=SE(A5="";"";EXT.TEXTO(Producao!A2;'Layout BPAI'!D$2;'Layout BPAI'!C$2))".
Conteúdo do txt
01201707CLINICA JULIO VARGAS 02996620170720711100015 039966201707000233333151FULANO DE TAL 22710222
Serão importados apenas os dados do consolidado e individualizado
Layout da interface texto CONSOLIDADO( identificado pelas duas primeiras colunas de valor 02)
Nome | Tam | Inicio | Fim
id_registro 2 1 2
id_unidade 4 3 6
competencia 6 7 12
procedimento 6 13 18
qtd 5 19 23
Layout da interface texto INDIVIDUALIZADO(identificado pelas duas primeiras colunas de valor 03)
Nome | Tam | Inicio | Fim
id_registro 2 1 2
id_unidade 4 3 6
competencia 6 7 12
mat_profissional 6 13 18
procedimento 6 19 24
nm_usu 30 25 55
cep_usu 8 56 63
Obrigado pela atenção!
Filipe Silva
Curtidas 0
Melhor post
Fabio Rocha
17/07/2017
Ola Filipe,
Existe sim é a função substr.
Se start não for negativo, a string retornada iniciará na posição start em string, começando em zero. Por exemplo, na string 'abcdef', o caractere na posição 0 é 'a', o caractere na posição 2 é 'c', e assim em diante.
Tem um artigo também segue link abaixo:
[url:descricao=PHP: Função substr]https://www.devmedia.com.br/php-funcao-substr/15207[/url]
Espero ter lhe ajudado.
Existe sim é a função substr.
Se start não for negativo, a string retornada iniciará na posição start em string, começando em zero. Por exemplo, na string 'abcdef', o caractere na posição 0 é 'a', o caractere na posição 2 é 'c', e assim em diante.
string substr ( string $string , int $start [, int $length ] )
<?php $rest = substr("abcdef", 0, -1); // retorna "abcde" $rest = substr("abcdef", 2, -1); // retorna "cde" $rest = substr("abcdef", 4, -4); // retorna "" $rest = substr("abcdef", -3, -1); // retorna "de" ?>
Tem um artigo também segue link abaixo:
[url:descricao=PHP: Função substr]https://www.devmedia.com.br/php-funcao-substr/15207[/url]
Espero ter lhe ajudado.
GOSTEI 2
Mais Respostas
Filipe Silva
16/07/2017
Pessoal,
só falta eu conseguir selecionar o intervalo do texto dentro de cada linha. No excel eu utilizo a função EXT.TEXTO(texto, núm_inicial,núm_caract). Existe alguma função semelhante no PHP?
só falta eu conseguir selecionar o intervalo do texto dentro de cada linha. No excel eu utilizo a função EXT.TEXTO(texto, núm_inicial,núm_caract). Existe alguma função semelhante no PHP?
GOSTEI 0
Filipe Silva
16/07/2017
Ola Filipe,
Existe sim é a função substr.
Se start não for negativo, a string retornada iniciará na posição start em string, começando em zero. Por exemplo, na string 'abcdef', o caractere na posição 0 é 'a', o caractere na posição 2 é 'c', e assim em diante.
Tem um artigo também segue link abaixo:
[url:descricao=PHP: Função substr]https://www.devmedia.com.br/php-funcao-substr/15207[/url]
Espero ter lhe ajudado.
Existe sim é a função substr.
Se start não for negativo, a string retornada iniciará na posição start em string, começando em zero. Por exemplo, na string 'abcdef', o caractere na posição 0 é 'a', o caractere na posição 2 é 'c', e assim em diante.
string substr ( string $string , int $start [, int $length ] )
<?php $rest = substr("abcdef", 0, -1); // retorna "abcde" $rest = substr("abcdef", 2, -1); // retorna "cde" $rest = substr("abcdef", 4, -4); // retorna "" $rest = substr("abcdef", -3, -1); // retorna "de" ?>
Tem um artigo também segue link abaixo:
[url:descricao=PHP: Função substr]https://www.devmedia.com.br/php-funcao-substr/15207[/url]
Espero ter lhe ajudado.
Perfeito!
Muito obrigado!
GOSTEI 0
Fabio Rocha
16/07/2017
Filipe,
O que precisar posta ae :D
Grande abraço
O que precisar posta ae :D
Grande abraço
GOSTEI 0