Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Comunidades

Comunidade Linux Home Participar da comunidade Linux Participar Fórum Linux Fórum Membros LinuxMembros RSS do fórum

<< Primeira | Anterior Próxima | Última >>

Exportação para TXT com base em layout

[1] Enviado em 08/02/2010 - 17:12h Exportação para TXT com base em layout
Linux user: Roberto Fonseca
robertofonseca

(usa Suse)


Srs,
Estou com a ingrata missão de exportar uma base de firebird(argh) para txt.
Estou tentando da seguinte forma:

<?php

$conexao = ibase_connect("10.10.14.1:c:/gdb/banco.spi","SYSDBA","masterkey");
$sql = "select * from tbclientes";
$resultado = ibase_query($conexao, $sql);
$res = ibase_query($sql) or die ('problemas no SQL');
$num = ibase_num_fields($res);
while ($row = ibase_fetch_object($res)) {
$arq = fopen("clientes.txt", "w");
$branco = '';
$ponto = fseek($arq, 1, SEEK_CUR );
fwrite($arq, $branco);

$clcod=$row->CLCOD;
$ponto = fseek($arq, 2, SEEK_CUR );
fwrite($arq, $clcod);

$nome=$row->CLNOME;
$ponto = fseek($arq, 6, SEEK_CUR );
fwrite($arq, $nome);

$cltipo=$row->CLTIPO;
$ponto = fseek($arq, 46, SEEK_CUR );
if ($cltipo == 1) {
$cltipo = 'F';
}else{
$cltipo = 'J';
fwrite($arq, $cltipo);}

$datanasc='01/01/90';
$ponto = fseek($arq, 47, SEEK_CUR );
fwrite($arq, $datanasc);

$clpai=$row->Clpai;
$ponto = fseek($arq, 55, SEEK_CUR );
fwrite($arq, $clpai);

$clmae=$row->Clmae;
$clmae = $clmae."\n";
$ponto = fseek($arq, 95, SEEK_CUR );
fwrite($arq, $clmae);

fclose($arq);


}


?>



Só que tipo ele roda esse lopping e ao reabir o arquuivo ele sobrescreve linha por linha...
Precisava que ele “pulasse” pra linha de baixo...ficando cada registro de cliente em linha separada...
Alguém tem alguma idéia?


 

  


[2] Enviado em 08/02/2010 - 21:28h \n
Linux user: Leonardo Gomes Duarte
lgomesd

(usa Suse)


\n no final do script?!

Será que funcionaria?!

Att.

Leonardo Gomes Duarte

 

[3] Enviado em 09/02/2010 - 09:33h artigo no www.php.net
Linux user: Paulo
henbran

(usa Debian)


Veja esse artigo que com certeza responde a tua questão. Tem até exemplos práticos

http://php.net/manual/pt_BR/function.fopen.php

Ou é a opção w+ ou é a opção a+

Pode ser que encontre soluções mais fáceis

Precisando, estamos a disposição.


 

[4] Enviado em 10/02/2010 - 08:45h Re: Exportação para TXT com base em layout
Linux user: Roberto Fonseca
robertofonseca

(usa Suse)


Então Gomes, o \n já esta quando eu adiciono o campo clmae.
Porém quando o looping sobe denovo ele atraves do fopen ele abre o arquivo e seta a posição do ponteiro na 1 da primeira linha. Eu tinha que dar um jeito de ele cair pra linha de baixo.


 

[5] Enviado em 10/02/2010 - 10:30h altere seu codigo para usar fputs
Linux user: Davi Ribeiro
dastyler

(usa Fedora)


como o exemplo abaixo:

$codigo = $aux["CODIGO"]."\r\n";
$pipe = "|";
$gravar = $pessoa.$cnpj_format.$name.$usual.$nat_endereco.$endereco.$data_cadastro_format.$codigo;
fputs($arquivo, "$gravar");

como o código é o ultimo campo, ele vai abrir uma nova linha assim que o valor de $codigo for inserido, e apenas a varaivel $codigo tem o parametro "\r\n".;)

O resto das variaveis fiz usando o str_pad. Exemplo:

$name = str_pad($aux["NOME"], 55, ' ');

Espero que tenha ajudado...

 

[6] Enviado em 10/02/2010 - 12:03h Re: Exportação para TXT com base em layout
Linux user: Roberto Fonseca
robertofonseca

(usa Suse)


Daystyler, na mosca, exatamente o que eu tava precisando. Eu não conhecia a função strpad e ela me salvou para deixar cada campo no tamanho certo.

Muito obrigado!!!

 

  
<< Primeira | Anterior Próxima | Última >>
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.