nunopicado Posted March 18, 2012 at 05:23 PM Report #444466 Posted March 18, 2012 at 05:23 PM Quem trabalha com um compilador recente de Pascal, ou com o Delphi, tem acesso a uma útil função para saber se um determinado ficheiro existe: uses SysUtils; const FileName='c:\teste.txt': begin if FileExists(FileName) then writeln('O ficheiro existe: ',FileName); end. A função FileExists devolve True se o ficheiro indicado por parâmetro existir, e False caso este não exista. Mas, e quem não usa um compilador com acesso a esta função? Bem, é muito simples criar esta função. Basta tentar abrir o dito ficheiro: Se for possível, é porque o ficheiro existe. Se não for, é porque não existe (ou não está acessível pelo menos). function FileExists(Filename:String):Boolean; var f:File; begin Assign(F,FileName); {$I-} Reset(F); {$I+} FileExists:=IOResult=0; end; E pronto... Um função prontinha a usar para determinar a existência/acessibilidade de um ficheiro da forma mais simples. "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
thoga31 Posted March 18, 2012 at 05:51 PM Report #444474 Posted March 18, 2012 at 05:51 PM Em 18/03/2012 às 18:23, nunopicado disse: Quem trabalha com um compilador recente de Pascal, ou com o Delphi (...) Enganaste-te na tecla... é decente! 😄 Knowledge is free!
nunopicado Posted March 18, 2012 at 06:07 PM Author Report #444482 Posted March 18, 2012 at 06:07 PM Enganaste-te na tecla... é decente! 😄 lol Não sejas assim, que isso não é verdade... O Turbo Pascal é um compilador muito decente (dos melhores até, a nível de qualidade) mas não é recente, pelo que lhe faltam algumas modernices. Mas nada que não possa ser feito com algum engenho. Quanto ao que tu estavas a pensar, não chega a ser compilador, pelo que nem entra na lista! 🙂 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
NazgulTuga Posted March 22, 2012 at 10:47 PM Report #445241 Posted March 22, 2012 at 10:47 PM function FileExists(Filename:String):Boolean; var f:File; begin Assign(F,FileName); {$I-} Reset(F); {$I+} FileExists:=IOResult=0; end; A ultima linha da função não devia ser: Result := IOResult=0; ?
nunopicado Posted March 22, 2012 at 11:23 PM Author Report #445245 Posted March 22, 2012 at 11:23 PM A ultima linha da função não devia ser: Result := IOResult=0; ? Em Delphi, qualquer uma das maneiras dá. Em Pascal, depende do compilador. Uns dá com Result, outros tem mesmo de ser o próprio nome da função. Pessoamente até prefiro usar o Result, mas por uma questão de compatibilidade com mais compiladores, resolvi por assim! 😉 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
NazgulTuga Posted March 22, 2012 at 11:25 PM Report #445246 Posted March 22, 2012 at 11:25 PM Não sabia! 😉 Obrigado. 😉
thoga31 Posted March 23, 2012 at 08:52 PM Report #445381 Posted March 23, 2012 at 08:52 PM Aproveito para dizer que qualquer compilador (decente 😉) irá assumir o Result com a compiler directive {$MODE Delphi}. Eu uso Free Pascal e meto sempre esta CD excepto quando programo com OOP. 😉 Knowledge is free!
nunopicado Posted March 23, 2012 at 09:02 PM Author Report #445389 Posted March 23, 2012 at 09:02 PM Aproveito para dizer que qualquer compilador (decente 😉) irá assumir o Result com a compiler directive {$MODE Delphi}. Eu uso Free Pascal e meto sempre esta CD excepto quando programo com OOP. 😉 Já te disse que há diferença entre Decente e Recente... O Turbo Pascal é Decente! Porém... 🙂 "A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!" > Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.
thoga31 Posted March 23, 2012 at 09:03 PM Report #445390 Posted March 23, 2012 at 09:03 PM Já te disse que há diferença entre Decente e Recente... O Turbo Pascal é Decente! Porém... 🙂 Já te disse (agora 😉) para não estragares os meus momentos de teoria... huymm... "reflexiva", vá... 😉 Knowledge is free!
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now