Recent

Author Topic: Criação de arquivo e manipulação de diretórios no Free Pascal  (Read 427 times)

kirkorian

  • Newbie
  • Posts: 4
Olá
Tenho um registro tipo record num programa e queria gravar os dados em um arquivo. Contudo, toda vez que a rotina tenta criar/abrir o arquivo, dá um erro de arquivo não localizado. Já até criei um vazio e acontece o mesmo. Alguém poderia dar alguma dica sobre esse problema e como lidar com arquivos e diretórios?
Obrigado.
Code: Pascal  [Select][+][-]
  1.  
procedure gravacao;
var
   cont:integer;
begin
     assign (F, arquivo)
     rewrite (F);
     for cont := 1 to v do
          write (F, termo[v]);
     close (F);
end;
[/code]


Laprado

  • New member
  • *
  • Posts: 7
Re: Criação de arquivo e manipulação de diretórios no Free Pascal
« Reply #1 on: August 03, 2022, 06:20:27 pm »
Boa tarde.

Testei seu código substituindo as variáveis utilizadas inferindo o tipo pela descrição que você passou. Pela natureza do problema apontado consegui simular o problema tentando utilizar um caminho de arquivo inválido, ou seja, usar um arquivo apontando para uma pasta que não existe retorna o erro "invalid file name". Apenas para avaliar melhor o problema eu coloquei o seguinte código para validar se o caminho do arquivo é válido:

Code: Pascal  [Select][+][-]
  1. if not DirectoryExists(ExtractFilePath(arquivo)) then
  2.     raise Exception.Create('Caminho do arquivo não existe');
  3.  

As funções utilizadas estão na unit SysUtils, portanto precisa ser adicionada a cláusula uses. Você pode adicionar esse código logo no início da procedure gravacao para verificar se o problema é realmente de um caminho inválido.

Se não resolver o problema seria interessante que você postasse um código mínimo que possa ser copiado / colado e executado. Nesse caso poderia ser apenas algo que permitisse que a procedure gravacao pudesse ser executada sem a necessidade de completarmos com as peças que faltam. Dessa forma é possível obter respostas bem mais precisas para o problema apontado.

Handoko

  • Hero Member
  • *****
  • Posts: 4712
  • My goal: build my own game engine using Lazarus
Re: Criação de arquivo e manipulação de diretórios no Free Pascal
« Reply #2 on: August 03, 2022, 06:35:01 pm »
Sorry I can't speak Portuguese.

There are several short demos for reading/writing files. You can download, run and study them:
- Binary file demo
- Text file demo
- Text file demo #2

They can be found in the File handling section in the link below:
https://wiki.freepascal.org/Portal:HowTo_Demos#File_handling

kirkorian

  • Newbie
  • Posts: 4
Re: Criação de arquivo e manipulação de diretórios no Free Pascal
« Reply #3 on: August 04, 2022, 02:19:51 am »
Laprado, justamente eu não sei lidar com os diretórios. Segui os materiais que encontrei e só indica o formato que coloquei. Entendi que iria gravar o arquivo na mesma pasta do programa, mas só dá erro. Vou adaptar o código para colocar aqui. Obrigado

kirkorian

  • Newbie
  • Posts: 4
Re: Criação de arquivo e manipulação de diretórios no Free Pascal
« Reply #4 on: August 05, 2022, 12:13:52 am »
Parece que ele só deixa gravar na própria árvore do Free Pascal. De qualquer forma, agora funcionou. Obrigado.

 

TinyPortal © 2005-2018