Jump to content


Photo

Ler Linhas De Arquivo Txt


  • Faça o login para participar
1 reply to this topic

#1 nandotrade

nandotrade

    12 Horas

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

Posted 18/01/2007, 16:59

Tenho uma série de arquivos TXT que pretendo ler e gravar em banco de dados MySql.

O formato é mais ou menos este:

*11 "asadfasdf" "sdf" 123 "cidade" "asdfsadfasdf" ....
"76 "asdfasd asdf ads" "asdfds" 234 "adsf asdfa sdfasdf asdfas df" .....

Fiz o código abaixo, que abre o arquivo e faz uma primeira separação pelo *.
Em seguida lê a linha e faz a quebra pelas aspas, onde pegarei apenas os valore que devem ir para o banco. Só que o código só faz a quebra na primeira linha.

$handle = fopen ("repre.txt", "r");
$i2="0";
while (!feof ($handle)) {
$buffer = fgets($handle, 4096);
$mostra1 = explode("*",$buffer);
while($i2 < count($mostra1)){
list($campo1[$i2],$campo2[$i2],$campo3[$i2],$campo4[$i2],$campo5[$i2],$campo6[$i2],$campo7[$i2],$campo8[$i2],$campo9[$i2],$campo10[$i2],$campo11[$i2],$campo12[$i2],$campo13[$i2],$campo14[$i2],$campo15[$i2],$campo16[$i2])= explode("\"",$mostra1[$i2]);
$conteudo = "INSERT INTO (`rep_codrepr` , `rep_status` , `rep_nome` , `rep_endereco` , `rep_cidade` , `rep_telefone` , `rep_fax` , `rep_cgc` , `rep_contato` , `rep_insc_est` , `rep_obs` `rep_cep` ) VALUES ('";
$conteudo .= trim($campo1[$i2])."' , '";
$conteudo .= "1' , '";
$conteudo .= trim($campo2[$i2])."' , '";
$conteudo .= trim($campo4[$i2])."' , '";
$conteudo .= trim($campo5[$i2])."' , '";
$conteudo .= trim($campo6[$i2])."' , '";
$conteudo .= trim($campo8[$i2])."' , '";
$conteudo .= trim($campo10[$i2])."' , '";
$conteudo .= trim($campo12[$i2])."' , '";
$conteudo .= trim($campo14[$i2])."' , '";
$conteudo .= trim($campo16[$i2])."' )";
$conteudo .= "; \n";
$ix = fopen("repre_salvo.txt", "w");
fwrite($ix,$conteudo,4096);
fclose($ix);
$i2++;
} // FIM DO SEGUNDO WHILE
}
fclose ($handle);

#2 rEd nEcK *

rEd nEcK *

    |̲̅<̲̅Θ̲̅>̲̅|

  • Usuários
  • 164 posts
  • Sexo:Masculino
  • Localidade:São Paulo

Posted 18/01/2007, 20:24

Boa noite ;D

Cara, tem certeza que seu txt é assim ? Tá meio bagunçado, vc não acha? =/

Enfim, vamos tentar reduzir esse script:

<?php

$lines = file("repre.txt");
for($i=0; $i<count($lines); $i++){
$splitX = explode("*", $lines[$i]);
for($z=0; $z<count($splitX); $z++){
list($campo1[$z],$campo2[$z],$campo3[$z],$campo4[$z],$campo5[$z],$campo6[$z],$campo7[$z],$campo8[$z],$campo9[$z],$campo10[$z],$campo11[$z],$campo12[$z],$campo13[$z],$campo14[$z],$campo15[$z],$campo16[$z])= explode("\"",$splitX[$z]);
$conteudo = "INSERT INTO (`rep_codrepr` , `rep_status` , `rep_nome` , `rep_endereco` , `rep_cidade` , `rep_telefone` , `rep_fax` , `rep_cgc` , `rep_contato` , `rep_insc_est` , `rep_obs` `rep_cep` ) VALUES ('";
$conteudo .= trim($campo1[$z])."' , '";
$conteudo .= "1' , '";
$conteudo .= trim($campo2[$z])."' , '";
$conteudo .= trim($campo4[$z])."' , '";
$conteudo .= trim($campo5[$z])."' , '";
$conteudo .= trim($campo6[$z])."' , '";
$conteudo .= trim($campo8[$z])."' , '";
$conteudo .= trim($campo10[$z])."' , '";
$conteudo .= trim($campo12[$z])."' , '";
$conteudo .= trim($campo14[$z])."' , '";
$conteudo .= trim($campo16[$z])."' )";
$conteudo .= "; \n";

$handle = fopen("repre_salvo.txt", "w");
fwrite($handle,$conteudo,4096);
fclose($handle);
}
}

?>


E agora ? Lê todas as linhas ?

Abraços

ps: não testei ;D
~/ ArrastoMemo.Com - Porque ganhar não é tudo, tem que humilhar o adversário /~




1 user(s) are reading this topic

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

IPB Skin By Virteq