
Ajuda ! Input Recebe Dados De Txt
#1
Posted 10/07/2006, 09:55
É o seguinte:
De um arquivo txt com vários dados eu preciso jogar esses dados dentro de inputs para depois gravar no BD.
Exemplo:
1 - arquivo.txt contém:
'maria', 'rua tiradentes', 'são paulo', '350,00'
2 - página com com os inputs.
<input name="nome" type="text">
<input name="endereco" type="text">
<input name="cidade" type="text">
<input name="valor" type="text">
Preciso que os inputs recebam os dados vindo do arquivo txt.
Álguem poderia me ajudar?
Desde já grato.
Fábio.
#2
Posted 10/07/2006, 10:09
<?
$arquivo="arquivo.txt"; // nome do arquivo
$abre = fopen ($arquivo, "r"); // abre o arquivo
$conteudo = fread ($abre, filesize ($arquivo)); // lê o conteúdo e atribui a variavel
fclose ($abre); // fecha o arquivo
$campos = explode(",",$conteudo); // separa a matriz com o separador ','
?>
<script>
var frm = this.form;
frm.nome.value = <?=$campos[0]?>;
frm.endereco.value = <?=$campos[1]?>;
frm.cidade.value = <?=$campos[2]?>;
frm.valor.value = <?=$campos[3]?>;
</script>";
a base é esta, espero que ajude.
[]´s!
Edição feita por: aimola, 10/07/2006, 10:10.
e que os passos de amanhã sejam mais largos que os de hoje.
#3
Posted 10/07/2006, 11:08

Essa foi a solução mesmo.
Valeu.
[]´s
#4
Posted 10/07/2006, 15:42

Mas, tipo ... haverá mais de uma linha no arquivo de texto né ?!

Se liga nisso:
<?php $database = file('arquivo.txt); list($nome, $endereco, $cidade, $valor) = explode("', '", trim($database[0], "'")); // ... ?>$database[0] se refere à linha 0 do arquivo de texto, ou seja, a primeira linha. Basta mudar este número para carregar outra linha, lembrando que inicia do 0.

A função explode() não pode usar só vírgula no parâmetro separator, pois há dado no arquivo que usa vírgula. Tem que ser ', ', como exemplifiquei acima. Como deste modo sobraria uma aspas simples no ínicio do primeiro valor e no fim do último valor, usei trim() com a aspas simples como parâmetro charlist, o que faz a função trim() remover apenas as aspas simples que sobram no início e no final da string.

Como usei list() para inicializar as variáveis dos valores requisitados, basta chamar estas variáveis onde desejar.

[]s

#5
Posted 10/07/2006, 16:58
Mas servirá de ajuda qdo em outros estiver mais.
Obrigado

Valeu !!!
#6
Posted 11/07/2006, 00:26
Opa ...Paulo Freitas, apenas terá uma linha mesmo.
Mas servirá de ajuda qdo em outros estiver mais.
Obrigado
Valeu !!!

Mesmo assim, meu comentário sobre a função explode() e trim() tá valendo, he he. "Explodir" a string em vírgulas afetaria também o valor do campo valor, pois ele possui vírgula.

[]’s

#7
Posted 11/07/2006, 08:48
Valeu.

#8
Posted 13/07/2006, 15:56
Sobre o o txt a história mudou.
A idéia inicial era: pegar os dados vindo do txt, joga-los em inputs e gravar no banco, após isto, eu iria fazer um script em php que enviasse os dados automaticamente para o e-mail cadastrado.
Mas a história mudou, ve se vocês podem me ajudar, é o seguinte.
Esse arquivo txt, irá vir com mais de um cliente, e de uma outra forma (o programa roda clipper e ele disse q não dá para sair no txt com o sinal de + antes de cada campo, por isso, olha como irá vir (não é nada de como eu estava pensando)
LINK DE COMO O ARQUIVO ME CHEGA: www.vibetrance.com.br/ex/exemplo.txt
Nesse link esta apenas um link, mas ai ele quebra a linha e passa os dados de outros.
A pessoa para qual estou desenvolvendo, ela disse que não quer cadastrar um por, por isso o txt vem com mais de um cliente,
Não sei o q fazer, existe uma solução do jeito que esse txt esta??
Se possível me ajudem.
#9
Posted 13/07/2006, 16:27
Té mais

Edição feita por: gennf, 13/07/2006, 16:31.
URL: www.batepapobrasil.com
----------------------------
Site desenvolvidos
URL: VitrineABC :: Alugue Litoral :: OrtodontiaLago
#10
Posted 13/07/2006, 16:49
Não sei se a possibilidade, de fazer algo assim:
Pegar os dados vindos do txt e já importar p/ a tabela de um banco MySql, distinguindade um fim de um cliente e começando o outro.
Pq como falei, ele cadastrar um por um não é a idéia dele.
Tá xxxxxx achar uma solução. =(
#11
Posted 13/07/2006, 17:06
Aguardo resposta

URL: www.batepapobrasil.com
----------------------------
Site desenvolvidos
URL: VitrineABC :: Alugue Litoral :: OrtodontiaLago
#12
Posted 13/07/2006, 17:28
O programador do sistema dessa empresa me disse que funciona dessa forma:
E-mail: 50 caracteres => programado p/ no máximo 50, se o no txt o e-mail for teste@teste.com.br => 18 caracteres, o que acontece: ele subtrai 50 - 18 = 32 ... e deixa 32 espaços em branco até chegar no campo Nome da Empresa e assim sucessivamente p/ os outros campos.
E eu não conheço uma forma de pegar esses dados e jogar p/ dentro de um banco do jeito que estão, queria saber se deste jeito que esta o txt tenho FUTURO ou é preciso mudar a forma a que venha o txt de modo que eu consiga distinguir os campos e o fim de um cliente e começo do outro para importá-los.
Obrigado pela atenção.
Valeu.
#13
Posted 13/07/2006, 20:50
Veja ai com o pessoal que desenvolveu o sistema se eles conseguem fazer isso, porque dessa forma totalmente aleatório será meio complicado.
Té mais

URL: www.batepapobrasil.com
----------------------------
Site desenvolvidos
URL: VitrineABC :: Alugue Litoral :: OrtodontiaLago
#14
Posted 14/07/2006, 10:25
Ok! Num primeiro momento ele disse que é possível. (separado por +)
Minha idéia é assim:
Fazer um script p/ upar o arquivo txt (isso é consegui).
Agora preciso saber como fazer uma página php que:
1 - Leia o arquivo txt.
2 - Primeira linha um cliente, segunda linha outro cliente, e assim em diante. (cada txt que upar não saberei o número de clientes, isso é aleatório)
3 - Na programação tipo um $sql = "INSERT INTO 'pedido' para levar esses dados p/ o MySQL.
Minha idéia é nunca aproveitar todos os txts, cada vez q upar ele sobrepõe ao outro. Só não sobrepõe as ID´s do clientes que serão auto-incremento.
Não sei se é mto, e se alguem poderia me ajudar!

Valeu !!!
#15
Posted 15/07/2006, 17:08
O código desse arquivo é:
extrair.php
<?
// Conteúdo do arquivo
$conteudoFile = file('dados.txt');
// Exibindo resultados do array
foreach($conteudoFile as $Linha) {
$L2 = explode("+", $Linha);
echo "$L2[0] - $L2[1] - $L2[2] - $L2[3] - $L2[4] - $L2[5] - $L2[6] - $L2[7] - $L2[8] - $L2[9] - $L2[10]<br>";
}
?>
Eu testei ele aqui em um arquivo acho que parecido com o arquivo que acredito que vc terá em mãos:
dados.txt
dado11+dado21+dado31+dado41+dado51+dado61+dado71+dado81+dado91+dado101+dado111
dado12+dado22+dado32+dado42+dado52+dado62+dado72+dado82+dado92+dado102+dado112
dado13+dado23+dado33+dado43+dado53+dado63+dado73+dado83+dado93+dado103+dado113
dado14+dado24+dado34+dado44+dado54+dado64+dado74+dado84+dado94+dado104+dado114
dado15+dado25+dado35+dado45+dado55+dado65+dado75+dado85+dado95+dado105+dado115
dado16+dado26+dado36+dado46+dado56+dado66+dado76+dado86+dado96+dado106+dado116
dado17+dado27+dado37+dado47+dado57+dado67+dado77+dado87+dado97+dado107+dado117
dado18+dado28+dado38+dado48+dado58+dado68+dado78+dado88+dado98+dado108+dado118
dado19+dado29+dado39+dado49+dado59+dado69+dado79+dado89+dado99+dado109+dado119
Eu nunca fiz um insert em em dados via pagina tipo uma instalação de alguns sistemas prontos que tem por ai.
Acredito que você possa fazer algo parecido apenas colocando os INSERT's nos seus devidos lugares na hora de executar o arquivo.
Se você conseguir fazer o que está querendo, depois coloque ai a resposta e a solução do seu problema para que futuramente outras pessoas possam usar a mesma tática.
Até masi

URL: www.batepapobrasil.com
----------------------------
Site desenvolvidos
URL: VitrineABC :: Alugue Litoral :: OrtodontiaLago
1 user(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)