1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Pascal: Not Output File

Discussão em 'Programação' iniciada por ctrl+alt+del, 16 de Janeiro de 2008. (Respostas: 8; Visualizações: 2755)

  1. ctrl+alt+del

    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.
     
  2. jnightz

    jnightz Power Member

    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)
     
  3. ctrl+alt+del

    ctrl+alt+del Power Member

    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"
     
  4. jnightz

    jnightz Power Member


    E tens o ficheiro 'Escola.dat' na drive D? A tua drive D é o quê? Um Disco ou Drive CD/DVD?
     
  5. ctrl+alt+del

    ctrl+alt+del Power Member

    Sim, o programa cria o ficheiro em D. D é um disco.
     
  6. jnightz

    jnightz Power Member

    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
     
  7. ctrl+alt+del

    ctrl+alt+del Power Member

    :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.
     
  8. jnightz

    jnightz Power Member

    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.
     
  9. ctrl+alt+del

    ctrl+alt+del Power Member

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

Partilhar esta Página