Ir ao conteúdo
  • Cadastre-se

Dúvida sobre leitura de arquivos. Não consigo abri os arquivos.


Matheus Lacombe

Posts recomendados

Olá pessoal. Estava exercitando pascal aqui em casa e estou tendo dificuldades para trabalhar com arquivos.

Bom, para criar os arquivos, até mesmo para dizer que uma variável será o nome do arquivo '.txt', isso tudo bem.. Porém quando eu preciso re-abrir o arquivo que eu criei, não consigo de jeito nenhum.

Ao pé-da-letra minha dúvida seria:

--> Como atribuir uma variável a um nome de arquivo, e AINDA assim fechar esse mesmo arquivo, para em seguida abrir ele novamente e mostrar o conteúdo do arquivo ao usuário.

Program Criar_e_Ler_arquivos;

var
menu:char;
nome:string;
arq:text;
alguma_coisa:string;
nome_arq:string;
resposta:integer;

Begin

repeat

writeln ('MENU');
writeln ('opcao - A');
writeln ('opcao - B');
readln (menu);

if (menu = 'A') then

Begin

writeln ('qual o nome do arquivo?');
readln (nome);
assign(arq, 'C:\Documents and Settings\Administrator\Desktop\'+nome+'.txt');
Rewrite(arq);
writeln ('Digite alguma coisa');
readln (alguma_coisa);
writeln(arq, 'alguma coisa');
close(arq);

end;

if (menu = 'B') then;

Begin

writeln ('Qual arquivo deseja ler? Digite o nome');
readln(nome_arq);
append(arq, nome_arq); //: Não consigo abrir o arquivo
reset(arq);
writeln ('conteudo do arquivo'); //: em seguida queria mostrar para o usuário o conteudo do arquivo.

end;

writeln ('Deseja voltar ao menu?');
writeln ('1 - SIM');
writeln ('2 - NAO');
readln (resposta);

until (resposta = 2);

End.

Valeu pessoal, abraços..

Link para o comentário
Compartilhar em outros sites

Pessoal, desculpem o up no tópico, mas enfim pessoal.. Por favor gente, alguem poderia me dar uma ajuda. Não consigo fazer a leitura dos arquivos...

- Qual comando eu utilizo?

- vai funcionar se o usuário determinar o nome do arquivo, como mostra no exemplo???

Valeu abraços..

Link para o comentário
Compartilhar em outros sites

Pessoal, desculpem o up no tópico, mas enfim pessoal.. Por favor gente, alguem poderia me dar uma ajuda. Não consigo fazer a leitura dos arquivos...

- Qual comando eu utilizo?

- vai funcionar se o usuário determinar o nome do arquivo, como mostra no exemplo???

Valeu abraços..

Vamos lá, vamos falar um pouco sobre os comandos básicos de arquivos:

Eu axoq você sabe como declarar arquivos...

quando você usa o comando assign(<arquivo>, <string>) então esse <string> pode ser representado ou por um string do tipo 'arquivo.txt' ou 'arquivo.bin' ou mesmo por uma variável, o tipo dessa variável pode ser string e você pode sim, pedir pro usuário ler a variável antes...algo do tipo

(...)

leia(nomeDoArquivo)

assign(<arquivo>, nomeDoArquivo)

(...)

mas, note que nomeDoArquivo, neste caso deve ser fornecido com a extensão no final: algo tipo '(...).txt' ou '(...).bin', você pode acrescentar essas terminações automaticamente ao nome que o usuário digita. Fazer algo do tipo:

-O usuário digita 'arquivo1'

-A variável é salva como 'arquivo1.txt' ou 'arquivo1.bin'

pra isso basta você truncar os strings:

nomeDoArquivo := nomeDoArquivo + '.txt' ou mesmo

nomeDoArquivo := nomeDoArquivo + '.bin'

isso também pode ser feito pelo comando trunc

uma vez usando o assign você declara quem é o arquivo em nome interno e externo, e você está pronto pra trabalhar...

rewrite(<arquivo>) -> cria um novo arquivo, ou refaz um já existente

reset(<arquivo>) -> abre um arquivo já existente (para txt você usa o comando append)

se você usar reset num arquivo que não existe então você vai ter um erro I/O, o uso da diretiva {$I-} e {$I+} pode auxiliar a você fazer que o programa decida sozinho qual dos dois comandos você pode usar.

Feito isso você vai salvar os dados no arquivo com o comando

write(arquivo, informacaoASerSalva)

você pode também ler os dados do arquivo

read(arquivo, informacaoASerLida)

cada vez que você usa um desses 2 comandos o ponteiro do arquivo vai pra frente, a função EOL(arquivo) se torna falsa quando chegamos no final da linha, no caso de arquivos texto, trabalhamos com a função EOL(arquivo). Outros comandos como seek, truncate etc. podem ser interessantes

após fazer todas as operações de escrever e alterar o arquivo, você usa o comando close(arquivo). Esse comando fecha o arquivo e salva ele com todas as alterações que foram feitas. você não pode usar um reset ou um rewrite em cima de um arquivo aberto, o comando close também é util pra fechar o arquivo antes de se usar tais comandos...

Eu não entendi muito bem a sua pergunta, tomara q isso tenha respondido a sua pergunta...

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!