Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Jonathan.me

[Resolvido] Gerar txt no Win 7

Recommended Posts

Olá, tenho uma aplicação feita no Delphi 2007 com uma rotina que gera um txt. Funciona normalmente no XP. Quando testei no Win 7 simplesmente não gera o arquivo. Não dá erro nem nada, apenas não gera. Imagino que tenha alguma coisa a ver com o UAC do Win 7.

 

Agradeço desde já.

Compartilhar este post


Link para o post
Compartilhar em outros sites

O windows 7 possui algumas restrições para salvar arquivos em pastas do sistema.

 

Verifique se o TXT está sendo salvo na raiz (C:/) da unidade pois se esse for o caso será necessária a utilização de um usuário com permissão administrativa.

 

Sugiro que salve o arquivo diretamente na pasta de instalação ou em alguma pasta no diretório c:/Users/

 

Essas restrições também se aplicam à pastas de sistema pois para estas as permissões padrão também são limitadas.

 

Caso se estas dicas não ajudarem por favor poste mais informações sobre o problema como o código utilizado na função que grava o arquivo e o local onde os arquivos estão sendo gravados.

 

Espero ter ajudado

 

_________________

Fozzi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade eu seleciono o diretório onde quero gravar o txt. Testei nos mais diferentes locais e não dá certo. Segue trecho do código abaixo.

.

.

.

AssignFile(Arquivo, nomerelatorio);

if FileExists(nomerelatorio) then

//limpa o arquivo

ReWrite(arquivo);

try

//escreve cabeçalho

WriteLn(arquivo, '00'+data+'0000000000000000'+sqlContribuinte.FieldByName('inscsuf').Value+'00000000000000000000000'+dblcbContribuinte.KeyValue+'023');

while j < cont do

begin

//escreve notas

WriteLn(arquivo, '01'+CnpjOri[j]+NumNota[j]+DataEmi[j]+strZero(sqlContribuinte.FieldByName('inscsuf').Value, 10)+'000000000000');

Append(arquivo); { se existir, apenas adiciona linhas }

j := j + 1;

end;

finally

CloseFile(arquivo)

end;

.

.

.

Valeu!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade eu seleciono o diretório onde quero gravar o txt. Testei nos mais diferentes locais e não dá certo. Segue trecho do código abaixo.

.

.

.

AssignFile(Arquivo, nomerelatorio);

if FileExists(nomerelatorio) then

//limpa o arquivo

ReWrite(arquivo);

try

//escreve cabeçalho

WriteLn(arquivo, '00'+data+'0000000000000000'+sqlContribuinte.FieldByName('inscsuf').Value+'00000000000000000000000'+dblcbContribuinte.KeyValue+'023');

while j < cont do

begin

//escreve notas

WriteLn(arquivo, '01'+CnpjOri[j]+NumNota[j]+DataEmi[j]+strZero(sqlContribuinte.FieldByName('inscsuf').Value, 10)+'000000000000');

Append(arquivo); { se existir, apenas adiciona linhas }

j := j + 1;

end;

finally

CloseFile(arquivo)

end;

.

.

.

Valeu!

 

O código aparentemente está certo, suponho que ele não gere nenhum erro porque a verificação FileExists retorna false. Neste caso nenhuma linha é escrita no arquivo.

 

Tente debugar o processo e confirme o resultado do fileExists. Caso o problema seja este mesmo ele estar sendo causado pelo UAC ou por algum outro software de segurança.

 

Execute o software clicando com o botão direito sobre o exe e selecionando "Executar como Administrador" caso o problema persista veja se aparece alguma coisa no log de eventos do seu sistema ou no do antivírus.

 

____________________

Fozzi

Compartilhar este post


Link para o post
Compartilhar em outros sites

Executei como administrador e ainda assim não funcionou. Interessante que trabalho com um outra ferramenta aqui (GENEXUS) e ele consegue gerar no WIN 7. Qualquer outra idéia agradeço.

 

Cara..agora que notei que os arquivos estão sendo gerados sim, só que dentro da pasta BIN da aplicação. Agora vou tentar descobrir o porque disso tá acontecendo, pois no XP ele salva aonde mando, e no 7 ele salva na pasta BIN.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.