Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

_vina

ler TXT

Recommended Posts

eu tenho um arquivo de txt que preciso ler para exercultar o meu PHP

 

antes eu usava um "seperador" para indentificar oq era oq !!!

 

agora num novo cliente mando um txt + ele não tem nenhum tipo de "separador"

ele funciona + ou - assim

 

1 = novo lote

2 = continuação

3 = fim do lote

 

ae tudo bem + depois complica pq veja o txt

 

1W48667 61213162803131220060EC00		0020h02816000200000000102491000012000000001255420000220000000013464300001200000000158212000032000000001597310000120000000016218000004200000000176727000032000000005074830000620000000050974500004200000000519603000083 61213162803000100000000033
cada linha tem 75 caracter

eu tenho q ler caracter por caracter para saber oq é oq

 

alguem tem ideia como posso ler caracter por caracter

???

http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

hehe eu tenhose cada linha tem 75 caracteres faz um loop com limite de 75 voltas e pra cada $iex.: $var[$i] // ex nome[1] ai você tem 75 variaveis por linha e faz o q quiser com elas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu uso sbstr.

 

Faço o mesmo processo que você deseja:

 

 

$caminho = $dir . "/" . $arq;    // Abrir o arquivo que subiu  $handle = fopen ($caminho, "r");while (!feof ($handle)) 	{	$buffer		= fgets($handle, 4096);	$ano		= substr($buffer, 0, 4);	$dt_mov		= substr($buffer, 4, 8);	$num_pro					= substr($buffer, 12, 10);	$seq		= substr($buffer, 22, 3);	$dt_pro		= substr($buffer, 25, 8);	$num_cla   	= substr($buffer, 33, 10);	$dt_cla	   	= substr($buffer, 43, 8);	$cod_ass   	= substr($buffer, 51, 6);	$assunto   					= substr($buffer, 57, 254);	$cod_gru   	= substr($buffer, 311, 3);	$cod_item	  = substr($buffer, 314, 3);	$cod_org   	= substr($buffer, 317, 2);	$cod_uo		= substr($buffer, 319, 2);	$cod_fun   	= substr($buffer, 321, 2);	$cod_sfun	  = substr($buffer, 323, 3);	$cod_pgm   	= substr($buffer, 326, 4);	$cod_pa		= substr($buffer, 330, 1);	$cod_npa   	= substr($buffer, 331, 3);	$cod_des   	= substr($buffer, 334, 8);	$cod_fnt   					= substr($buffer, 342, 3);							$cod_tip   					 = substr($buffer, 345, 2);										$bd4  = new MySql;		$sql4 = "INSERT INTO tabela (ano, dt_mov, num_pro, seq, dt_pro, num_cla, dt_cla, cod_ass,  assunto, cod_gru, cod_item, cod_org, cod_uo, cod_fun, cod_sfun, cod_pgm, cod_pa, cod_npa, cod_des, cod_fnt, cod_tip, vl_cla, username, data)  VALUES ('$ano', '$dt_mov', '$num_pro', '$seq', '$dt_pro', '$num_cla', '$dt_cla', '$cod_ass', '$assunto', '$cod_gru', '$cod_item', '$cod_org', '$cod_uo', '$cod_fun', '$cod_sfun', '$cod_pgm', '$cod_pa', '$cod_npa', '$cod_des', '$cod_fnt', '$cod_tip', '$vl_cla', '$username', '$data') ";		$bd4->query($sql4);			}fclose ($handle);?>

Meu txt é grande, como pode perceber pelo substr e não tenho problema desde que as colunas são fixas.

 

 

PS: Seta um tamanho do campo, por exemplo, se o campo usuario tenha 50 caracteres ele sempre sera 50, mesmo q so tenha 10 caracteres, entende? Faça colunas fixas e não tera problemas. Pois se for ôba, ôba você vai ter problemas pq nao tem como identificar que o nome tem 10 caracteres ou 30, 50 entende?

 

 

 

 

 

 

espero ter ajudado, dúvidas posta seu codigo aê.

 

Abraços!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.