Pascal: Not Output File

ctrl+alt+del

Power Member
Este programa de um manual da Porto Editora dá um erro que não consigo resolver: Not Output file.
Alguém pode analisar?

Código:
Program escola;

Type Registo = Record 
        Nome : String;
        Idade : Integer;
End;
Var Ficha : File of Registo;
    Aluno : Registo;
    C, N : Integer;

Begin 
Assign (Ficha, 'D:\\Escola.dat');
Rewrite (Ficha);
Aluno.Nome := 'Ana José';
Aluno.Idade := 22;
Write (Ficha, Aluno);
Aluno.Nome := 'Maria';
Aluno.Idade := 21;
Write (Ficha, Aluno);
Close (Ficha);
Reset (Ficha);
While Not Eof (Ficha) Do
    begin
        Read (Ficha, Aluno);
        Writeln (Aluno.Nome);
        Writeln (Aluno.Idade);
    end;
Write ('N.º de alunos no ficheiro');
Writeln (Filesize (Ficha));

{Parte nova do programa}

Writeln ('Quantos registos mais?');
Readln (N);
Seek (Ficha, FileSize (Ficha)); 
For C:=1 To N Do            
    begin
        Write ('Nome:');
        Readln (Aluno.Nome);
        Write ('Idade:');
        Readln (Aluno.Idade);
        write (Ficha, Aluno); {Linha 42 - ERRO}
    end;
Write('Nº de alunos no ficheiro ');
Writeln (FileSize (Ficha));
Seek (Ficha, 0); 
While Not Eof (Ficha) Do    
    begin
        Read (Ficha, aluno);
        Writeln (Aluno.Nome);
        Writeln (Aluno.Idade);
    end;

Close (Ficha);
End.
 
Não deu nenhum erro de compilação, o único erro foi ao fazer RUN:
"Error 5: File access denied."

Por causa de 'D:\\Escola.dat', depois de apagar uma \ correu bem sem erro nenhum.
(claro que tive de criar um ficheiro com o nome Escola.dat no disco D)
 
Não deu nenhum erro de compilação, o único erro foi ao fazer RUN:
"Error 5: File access denied."

Por causa de 'D:\\Escola.dat', depois de apagar uma \ correu bem sem erro nenhum.
(claro que tive de criar um ficheiro com o nome Escola.dat no disco D)

Pois a mim continua sempre a dar esse erro. Quer com uma \ ou duas. O erro não é a compilar mas sim na execução do programa. Quando introduzo os novos registos. Ao executar a instrução "write (Ficha, Aluno);" retorna com o erro acima descrito: "ERROR: Not Output File"
 
Pois a mim continua sempre a dar esse erro. Quer com uma \ ou duas. O erro não é a compilar mas sim na execução do programa. Quando introduzo os novos registos. Ao executar a instrução "write (Ficha, Aluno);" retorna com o erro acima descrito: "ERROR: Not Output File"


E tens o ficheiro 'Escola.dat' na drive D? A tua drive D é o quê? Um Disco ou Drive CD/DVD?
 
Eu criei o ficheiro primeiro, agora apaguei e o programa criou e funcionou bem.

Qual é o Pascal ke tens? Eu tenho um antigo ke deram na Universidade o Turbo Pascal 7.0

:S Isso é estranho. Eu tenho o Irie Pascal. Estou a usar na escola. E lá é o programa que existe. Não entendo porque não resulta. É a acção de escrever no ficheiro que não está a funcionar. E noutros programas que tenho experimentado dá-me também este erro na altura de escrever os dados no ficheiro.
 
:S Isso é estranho. Eu tenho o Irie Pascal. Estou a usar na escola. E lá é o programa que existe. Não entendo porque não resulta. É a acção de escrever no ficheiro que não está a funcionar. E noutros programas que tenho experimentado dá-me também este erro na altura de escrever os dados no ficheiro.

Se ainda não tiveres o manual faz download aqui.
Parece que no Irie Pascal mexer com ficheiros é ligeiramente diferente, por isso é que dá o erro. (http://www.irietools.com/iriepascal/progref81.html#const_bi_writemode), vê a linha "Standard Pascal: No"

Experimenta com o Turbo Pascal http://www.esas.pt/~jandrade/linguagem_pascal.htm
Uns exercicios em Pascal: http://www.ticensino.com/apoio/tpascal/tpascal.htm

Acho que é disso, se não for deve ser um BUG do programa :) ou então não sei.
 
Se ainda não tiveres o manual faz download aqui.
Parece que no Irie Pascal mexer com ficheiros é ligeiramente diferente, por isso é que dá o erro. (http://www.irietools.com/iriepascal/progref81.html#const_bi_writemode), vê a linha "Standard Pascal: No"

Experimenta com o Turbo Pascal http://www.esas.pt/~jandrade/linguagem_pascal.htm
Uns exercicios em Pascal: http://www.ticensino.com/apoio/tpascal/tpascal.htm

Acho que é disso, se não for deve ser um BUG do programa :) ou então não sei.

Muito obrigado pela ajuda. Vou analisar essa questão.
 
Back
Topo