Jump to content


Photo

Ler Linha De Um Arquivo Txt E Quebrar Informações


  • Faça o login para participar
2 replies to this topic

#1 Gardenal

Gardenal

    Turista

  • Usuários
  • 30 posts
  • Sexo:Não informado

Posted 27/03/2007, 23:55

Dae moçada preciso de uma ajuda..
Ate entao eu usava um sistema que tinha um indicador por exemplo:
VALOR1|Valor2|V3|0007| ..
Dae tinha um
..
$rows = explode("|",$arry[$x]);
...

Só que agora eu tenho uma linha que nao tem esses indicadores pra pega e montar as arrays..
E assim agora:
240787RODRIGO PASQUAL DALAGUA   0001PATO BRANCO-PR				042992U DD/MM/AAAADD/MM/AAAA

Onde:
240787 - seria data de nascimento
RODRIGO PASQUAL DALAGUA - nome
0001PATO BRANCO-PR - seria um id de cadastro e a cidade natal
042992U DD/MM/AAAADD/MM/AAAA - 04 seria um manifesto, 299 um indicativo e 2U um operador de comperação depois duas datas DD/MM/AAAA.

Se alguem puder me ajudar poderia sentir-se desde ja agradecido.
:D

Edição feita por: Gardenal, 27/03/2007, 23:58.


#2 Felipe Pena

Felipe Pena

    O temor do Senhor é o princípio da sabedoria

  • Ex-Admins
  • 6441 posts
  • Sexo:Masculino

Posted 28/03/2007, 00:25

Seguindo o padrão informado, você poderia usar uma expressão regular como essa:
/(\d+)((?: ?\w+)+)\s+(\d+)((?: ?\S+)+)\s+(\d{2})(\d+?)(\w{2}) (\S+)/

Exemplo:
<pre>
<?php

$str = '240787RODRIGO PASQUAL DALAGUA   0001PATO BRANCO-PR				042992U DD/MM/AAAADD/MM/AAAA';

preg_match('/(\d+)((?: ?\w+)+)\s+(\d+)((?: ?\S+)+)\s+(\d{2})(\d+?)(\w{2}) (\S+)/', $str, $match);

print_r($match);

?>

Edição feita por: Eclesiastes, 28/03/2007, 00:27.
Correção.

Felipe Pena
[...] ó terra, terra, terra; ouve a palavra do Senhor. — Jeremias 22:29

#3 Gardenal

Gardenal

    Turista

  • Usuários
  • 30 posts
  • Sexo:Não informado

Posted 28/03/2007, 23:39

Pelo que percebi vc vai quebrar o que é numero (inteiro) do que é string(conjunto de caracteres)?
O problema é que eu vou usar mais campos, e vai conter virgulas..
000082,00P000034,980001CORONEL VIVIDA-PR				0007FOZ DO IGUACU/PR			  0011   149   240,00	 0	 0,00	 0	 0,00	 0	 0,00	 0	 0,00	 0	 0,00	 0	 0,00	 0	 0,00
Depois eu poderia usar pra um echo, print ou pra inserir no banco as arrays, e/ou matrizes?
;X

To meio perdido ;/




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq