Jump to content


Photo

Ajuda ! Input Recebe Dados De Txt


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

#1 xaceshighx

xaceshighx

    Novato no fórum

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

Posted 10/07/2006, 09:55

Fala galera, blz?

É 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 aimola

aimola

    Webdeveloper

  • Usuários
  • 471 posts
  • Sexo:Masculino
  • Localidade:Sampa

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.

Que os passos de hoje sejam maiores que os de ontem
e que os passos de amanhã sejam mais largos que os de hoje.

#3 xaceshighx

xaceshighx

    Novato no fórum

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

Posted 10/07/2006, 11:08

Aimola, obrigado pela ajuda =))

Essa foi a solução mesmo.


Valeu.


[]´s

#4 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 10/07/2006, 15:42

Opa ... ;)

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

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 :DAté mais

#5 xaceshighx

xaceshighx

    Novato no fórum

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

Posted 10/07/2006, 16:58

Paulo Freitas, apenas terá uma linha mesmo.

Mas servirá de ajuda qdo em outros estiver mais.


Obrigado =)
Valeu !!!

#6 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 11/07/2006, 00:26

Paulo Freitas, apenas terá uma linha mesmo.

Mas servirá de ajuda qdo em outros estiver mais.


Obrigado =)
Valeu !!!

Opa ... ;)

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 :DAté mais

#7 xaceshighx

xaceshighx

    Novato no fórum

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

Posted 11/07/2006, 08:48

É, então a "," como separador não pegava os centavos do valor 350,00 ... mas alterei no arquivo texto e no código por um "+".



Valeu. (y)

#8 xaceshighx

xaceshighx

    Novato no fórum

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

Posted 13/07/2006, 15:56

Fala galera, estou uns problemas aqui.

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 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 13/07/2006, 16:27

Já testou o exemplo do Paulo Freitas pra ver se ele faz o que vc Deseja???

Té mais ;)

Edição feita por: gennf, 13/07/2006, 16:31.

Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#10 xaceshighx

xaceshighx

    Novato no fórum

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

Posted 13/07/2006, 16:49

Não deu certo.


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 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 13/07/2006, 17:06

O espaço entre uma opção e outra é grande daquele jeito mesmo ou é apenas um espaço???

Aguardo resposta ;)
Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#12 xaceshighx

xaceshighx

    Novato no fórum

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

Posted 13/07/2006, 17:28

Esses dados tb existem numa base DBF.
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 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 13/07/2006, 20:50

Quanto ao fim e o inicio de um cliente um em cada linha acredito que esteja ótimo. Agora deveria ter alguma coisa pra separar um dado do outro, tipo uma virgula um traço, alguma coisa que separe um dado do outro.

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 ;)
Portal BatePapoBrasil
URL: www.batepapobrasil.com

----------------------------
Site desenvolvidos
URL:
VitrineABC :: Alugue Litoral :: OrtodontiaLago

#14 xaceshighx

xaceshighx

    Novato no fórum

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

Posted 14/07/2006, 10:25

gennf: Valeu pelo auxílio que tem dado.
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 gennf

gennf

    A Solução está ai...

  • Usuários
  • 645 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte - MG

Posted 15/07/2006, 17:08

Cara, ey tenho um arquivinho aqui que me ajudou muito a um tempo atrás pra eu fazer umas coisas em meu site, ele pega os dados de um arquivo e joga na pagina.

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 ;)
Portal BatePapoBrasil
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)

IPB Skin By Virteq