Caros Srs.
Estou desenvolvendo uma importação de grupos e produtos de um sistema já existente porém ao ler algumas linhas que apresentam . o script retorna apenas o que vem antes do .
Exemplo de linha a ser lida:
MAT. ELETRICO - CX. LUZ
Quando uso o explode para separar os itens do grupo mat. eletrico do sub grupos cx. luz ele ta retornando apenas o MAT como depois tem um . (ponto) ele não retorna correto.
Deveria retornar
variavel_explode[0] = MAT. ELETRICO
variavel_explode[1] = CX. LUZ
Para que eu grave corretamente no banco de dados do site da empresa, já que estas informações estão sendo retiradas do sistema interno da empresa.
Precisamos disso para manter o banco do site atualizado com o banco da empresa.
Fico no aguardo de um auxilio pq não to sabendo o que fazer, ja tentei substr para o ponto e nada, o cliente tem visita comigo hoje a tarde e isso ta me matando.
Obrigado aos colegas!
M. Antunes
Gestione Soluções em Web e TI
www.gestioneweb.com.br
					
					
					
				
				
				
				 
	
Problema Com Leitura De Arquivo Txt
		 Started By Gestione Web, 18/03/2011, 12:53
	
	
	
	
		3 replies to this topic
	
	
			
				
					
						
					
					#2
					 
					
				
				
				
					
				
			
				
			
			
			Posted 18/03/2011, 13:22
					Está usando o explode como?
					
					
					
				
				
				
				
			
				
					
						
					
					#3
					 
					
				
				
				
					
				
			
				
			
			
			Posted 18/03/2011, 13:45
Está usando o explode como?
Olá!
A linha que vem exportada do sistema interno tem espaços na segunte formatação:
*** na postagem o sistema do forum ta cortando os espaços, mas tem 4 espaços antes do 001 e mais 7 espaços entre o 001.001 e o ALVENARIA - CIMENTO, por isso a contagem do substr. Vou exemplificar os espaços na linha utilizando o *
****001.001*******ALVENARIA - CIMENTOS
Então eu consegui resolver provisoriamente com substr da seguinte forma:
aqui vai a leitura depois de aberto o file txt onde cada linha fica armazenada na variavel $arq
for ($a = 0; $a < count($arq); $a++) {
// aqui ele retira o grupo: 001
$grupos = substr("$arq[$a]",0,7);
// aqui ele retira o subrgupo: 001
$subgrupo = substr("$arq[$a]",8,3);
// aqui ele verifica o tamanho da linha e diminui os 17 primeiros caracteres para ter o restante que é o nome do grupo e subgrupo: ALVENARIA - CIMENTOS
$caracteres_linha = strlen($arq[$a]);
$resto_nomes = $caracteres_linha - 17;
//aqui ele separa o nome do grupo do nome do subgrupo
$nome_grupos = substr("$arq[$a]",17,$resto_nomes);
$nomes = explode(" - ", $nome_grupos);
}
A principio deu certo, Vou gravar pra ver se rola gravar se não existe e atualizar se existe o grupo ou subgrupo com mesmo ID já gravado.
Obrigado pela atenção vou testar e posto o resultado.
Edição feita por: Gestione Web, 18/03/2011, 13:47.
			
				
					
						
					
					#4
					 
					
				
				
				
					
				
			
				
			
			
			Posted 18/03/2011, 14:07
					Pra mim parece certo. Não entendi o problema. Só não precisa contar o tamanho da linha e subtrair 17. Se você omitir o terceiro parâmetro, substr já pega até o final.
					
				
				
				
				
$nome_grupos = substr("$arq[$a]", 17);
					
					1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)


 
			
			 
				
				
				








