Guest --felipe -- Postado Julho 4, 2007 Denunciar Share Postado Julho 4, 2007 bom pessoal eu queria saber como faço uma rotina para não dar erro caso o caminho do arquivo indicado não exista.eu tentei assim:pik := InputBox(pik,'Arquivo .PIK','c:\gerar brd\pik\'); try AssignFile(Input,pik); except pik := InputBox(pik,'Arquivo .PIK','c:\gerar brd\pik\'); end;só que mesmo assim acontece o erro, e o pior é que o comando no "except" não é executadoah, e o programa deve pedir o caminho tantas quantas vezes o usuario digitar o caminho errado.valeu x) Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Julho 4, 2007 Denunciar Share Postado Julho 4, 2007 bom pessoal eu queria saber como faço uma rotina para não dar erro caso o caminho do arquivo indicado não exista.eu tentei assim:pik := InputBox(pik,'Arquivo .PIK','c:\gerar brd\pik\'); try AssignFile(Input,pik); except pik := InputBox(pik,'Arquivo .PIK','c:\gerar brd\pik\'); end;só que mesmo assim acontece o erro, e o pior é que o comando no "except" não é executadoah, e o programa deve pedir o caminho tantas quantas vezes o usuario digitar o caminho errado.Por acaso este efeito não está ocorrendo enquanto você está executando o programa por dentro da IDE do Delphi? Nesta situação, a exceção ocorre, o fluxo de execução é desviado para a linha com erro na IDE e você pode seguir depurando (F7 ou F8) ou executanto (F9), mas na sequencia o programa irá continuar e executar o InputBox dentro do except.para pedir o caminho quantas vezes seja necessário - até que seja um arquivo válido, sugiro que você utilize um repeat..until e a função FileExists, de modo que não será necesário utilizar try..except. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --felipe -- Postado Julho 4, 2007 Denunciar Share Postado Julho 4, 2007 para pedir o caminho quantas vezes seja necessário - até que seja um arquivo válido, sugiro que você utilize um repeat..until e a função FileExists, de modo que não será necesário utilizar try..except.repeat pik := InputBox('.PIK -- Para sair não escreva nada.','Arquivo .PIK','c:\gerar brd\pik\'); if pik = 'c:\gerar brd\pik\' then exit; until FileExists(pik)=true; AssignFile(Input,pik);beleza ficou assim e funcionou, se o cara quiser sair da procedure não deve escrever nada.tem algum jeito de detectar se o usuario clicou em "cancelar"??valeu pela atençaoabraç Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Micheus Postado Julho 5, 2007 Denunciar Share Postado Julho 5, 2007 repeat pik := InputBox('.PIK -- Para sair não escreva nada.','Arquivo .PIK','c:\gerar brd\pik\'); if pik = 'c:\gerar brd\pik\' then exit; until FileExists(pik)=true; AssignFile(Input,pik);Está correto, mas façamos um favor a lógica, use "until FileExists(pik);" ao invés de "until FileExists(pik)=true;".Veja o que já comentei, e o Churc complementou, sobre isto num outro post.beleza ficou assim e funcionou, se o cara quiser sair da procedure não deve escrever nada.tem algum jeito de detectar se o usuario clicou em "cancelar"??Veja o que o Help diz sobre isso:Use the InputBox function when there is a default value that should be used when the user chooses the Cancel button (or presses Esc) to exit the dialog. ou seja, o valor que você passa como default será o mesmo retornado pela função quando o cara cancelar a entrada.Abraços Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Guest --felipe -- Postado Julho 5, 2007 Denunciar Share Postado Julho 5, 2007 Está correto, mas façamos um favor a lógica, use "until FileExists(pik);" ao invés de "until FileExists(pik)=true;".é verdade..eu nunca tenho certeza se vai funcionar sem o true, mas é rapidinho pra testar isso, viajem minha :rolleyes: ehuieuhi vo presta mais atenção nisso valeu pelo toque.até! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Guest --felipe --
bom pessoal eu queria saber como faço uma rotina para não dar erro caso o caminho do arquivo indicado não exista.
eu tentei assim:
só que mesmo assim acontece o erro, e o pior é que o comando no "except" não é executado
ah, e o programa deve pedir o caminho tantas quantas vezes o usuario digitar o caminho errado.
valeu x)
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.