Em um programa codificado na linguagem Delphi, a abertura do...
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: D - testar o valor retornado pela função IOResult, que é do tipo integer.
Para entender essa questão, é importante conhecer como o Delphi, uma linguagem de programação orientada a objetos, lida com operações de arquivo. No Delphi, a abertura de arquivos de texto é normalmente feita com a função Assign, que associa um arquivo a uma variável do tipo text, seguida pela função Reset, que abre o arquivo para leitura.
Quando a diretiva {$IOChecks off} está ativa, as verificações automáticas de erros de E/S (Entrada/Saída) são desabilitadas. Isso significa que se ocorrer um erro ao abrir o arquivo com a função Reset, o programa não irá interromper a execução automaticamente. Portanto, a responsabilidade de verificar se o arquivo foi aberto com sucesso fica a cargo do programador.
O Delphi disponibiliza a função IOResult para verificar o resultado da última operação de E/S realizada quando as verificações automáticas estão desabilitadas. Se a operação de E/S for bem-sucedida, a função IOResult retorna 0. Qualquer outro valor indica que um erro ocorreu. O tipo de retorno desta função é um integer, e não um boolean, o que significa que ela pode retornar uma gama de valores, cada um representando um erro específico.
Portanto, após tentar abrir o arquivo com a chamada Reset(arq), o programador deve invocar a função IOResult para verificar se o valor retornado é igual a 0, o que significaria que o arquivo foi aberto com sucesso. É por isso que a alternativa (D) é a correta, já que ela especifica que deve-se testar o valor retornado pela função IOResult, que é do tipo integer.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
"Variáveis iniciadas com “$” indicam diretivas de compilação.
A $IOChecks determina se uma operação de IO deverá lançar uma exceção quando houver erro.
{$IOChecks Off} não gera a exceção, e passa a ser de responsabilidade do programador checar se a operação deu certo através da função IOResult que retorna um inteiro (0 se houve sucesso, e um número positivo em caso de erro)."
Correção feita pelo prof. Diego Carvalho. Estratégia Concursos.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo