Página 1 de 1

Gravar Arquivo TXT

Enviado: 19 Jan 2005 01:32
por Singulani
Alo galera,

Preciso saber porque não estou conseguindo gravar fisicamente meu arquivo TXT após executar uma rotina de filtro como mostro abaixo.
O problema é que tudo funciona noemalmente mas o arquivo não é gravado no HD. Será que vc pode me dar uma ajuda? Veja minha rotina.

Grato
Singulani...

se possível responda para o meu e-mail:

sing@click21.com.br

-----------------------------------------------

/* gerando o nome do arquivo */
cArquivo := "DUDU_XBASE".TXT"


/* criando o arquivo */
nHandle := fcreate ("cArquivo, FC_NORMAL)

dbselectarea ("arq_fun")

? "Aguarde Exportando Cadastro de Funcionários"

while ( CODCLI >= cCliente .and. CODCLI <= cCliente .and. !eof () )

/* montagem do registro */

cLinha := ""
cLinha += arq_fun->CODFUN
cLinha += arq_fun->CODEMP
cLinha += arq_fun->NOMFUN
cLinha += transform(arq_fun->QTDCES, "999999")
cLinha += arq_fun->STAFUN
cLinha += arq_fun->CODMOT
cLinha += arq_fun->NOMMOT
cLinha += chr(13)+chr(10) // para saltar a Linha

// para gravar no arquivo txt
fwrite (nHandle, cLinha, len (cLinha))

dbskip ()

enddo

fclose (nHandle)

? "Exportação Efetuada com Sucesso"
tone (3000,2)
tone (3000,3)

Enviado: 19 Jan 2005 01:51
por Clipper
Prezado Colega

A primeira vista encontrei 2 problemas.

1 - cArquivo := "DUDU_XBASE".TXT"
2 - nHandle := fcreate ("cArquivo, FC_NORMAL)

1 - O nome do arquivo tem mais de 8 caracteres no sufixo "DUDU_XBASE"
não sei se você pegou e colou mas tb tem aspas sobrando

2 - Tem aspas onde não é necessário e está faltando a que fecha

Até logo.

Marcelo

Enviado: 19 Jan 2005 02:01
por Singulani
Oi Marcela,

Me desculpae mas esses erros eu já havia corrigido.

/* gerando o nome do arquivo */
cArquivo := "ARQ_01.TXT"


/* criando o arquivo */
nHandle := fcreate ("cArquivo", FC_NORMAL)

dbselectarea ("arq_fun")

? "Aguarde Exportando Cadastro de Funcionários"

while ( CODCLI >= cCliente .and. CODCLI <= cCliente .and. !eof () )

/* montagem do registro */

cLinha := ""
cLinha += arq_fun->CODFUN
cLinha += arq_fun->CODEMP
cLinha += arq_fun->NOMFUN
cLinha += transform(arq_fun->QTDCES, "999999")
cLinha += arq_fun->STAFUN
cLinha += arq_fun->CODMOT
cLinha += arq_fun->NOMMOT
cLinha += chr(13)+chr(10) // para saltar a Linha

// para gravar no arquivo txt
fwrite (nHandle, cLinha, len (cLinha))

dbskip ()

enddo

fclose (nHandle)

Enviado: 19 Jan 2005 11:35
por Alessandro
Olá,

Experimente assim:

fwrite(nHandle, @cLinha, len (cLinha))

Enviado: 19 Jan 2005 12:05
por Clipper
Pô !!!

Marcela é sacanagem... :( :oops: :cry:

Fui...

Marcelo

Enviado: 19 Jan 2005 12:26
por Maligno
/* criando o arquivo */
nHandle := fcreate ("cArquivo", FC_NORMAL)
NOTA 1: Provavelmente deu tudo certo, mas o arquivo criado passou a se chamar "cArquivo". Você não usou o conteúdo da variável para indicar o nome do arquivo, mas criou um arquivo com o nome da variável. Teste: procure por um arquivo chamado "cArquivo". Certamente você o encontrará.
É só distração. Não se preocupe. Acontece com todo mundo.

NOTA 2: Economize um pouco de código com construções do tipo
cLinha := ""
cLinha += arq_fun->CODFUN
Use diretamente cLinha := arq_fun->CODFUN. Como se trata da primeira linha do loop, o efeito será o mesmo. Não faz muita diferença no presente momento, mas se você se prender a esse tipo de construção nada econômica, um dia, num loop mais "pesado", você poderá comprometer a performance do seu programa. É sempre melhor cultivar o hábito da economia de código.

[]'s
Maligno
http://www.buzinello.com/prg