</AULA 08>

Algoritmos e Lógica de Programação

Persistência e Manipulação de Arquivos

Portugol
Linguagem C
Python

O que é Manipulação de Arquivos?

Até agora, nossos dados viviam apenas na RAM (volátil). Quando o programa fechava, os dados sumiam.

  • Persistência: Salvar dados de variáveis em arquivos de texto (.txt).
  • Recuperação: Ler informações do disco para a memória do programa.

Nota Importante: A sintaxe de Portugol (UniCesumar) não possui recursos para manipular arquivos de sistema.

Analogia

A memória RAM é sua mesa de trabalho (rápida, mas limpa ao fim do dia). O arquivo de texto é o armário de arquivos (guarda tudo permanentemente).

Manipulação de Arquivos em C

Em C, tratamos arquivos através de um ponteiro especial chamado FILE *.

ComandoFunção
FILE *ptr;Cria um ponteiro para identificar o arquivo.
fopen()Abre o arquivo e define a permissão.
fclose()Fecha o arquivo (fundamental para salvar os dados no disco).
fprintf()Escreve dados formatados no arquivo.
fgets()Lê uma linha completa do arquivo para uma variável.

C: Modos de Abertura

ModoComportamento
"r" (Read)Apenas leitura. O arquivo deve existir.
"w" (Write)Cria se não existir. Sobrescreve se já existir.
"a" (Append)Cria se não existir. Adiciona ao final do arquivo.
"r+"Leitura e escrita (início do arquivo).

Cuidado!

Sempre verifique se o ponteiro é NULL após o fopen. Se for NULL, o arquivo não pôde ser aberto por falta de permissão ou caminho inexistente.

Manipulação de Arquivos em Python

Python utiliza a função global open() e os mesmos modos de C (r, w, a).

Comandos Principais

  • f = open("arq.txt", "w"): Abre.
  • f.write("texto"): Escreve.
  • f.read(): Lê tudo.
  • f.close(): Fecha.

O Jeito Pythonico (with)

with open("aula.txt", "w") as arquivo: arquivo.write("Olá!") # O arquivo fecha automaticamente aqui!

Exemplos Práticos: Criação e Leitura

Linguagem C

#include <stdio.h> int main() { // 1. Escrita FILE *arquivo = fopen("monitoria.txt", "w"); if (arquivo != NULL) { fprintf(arquivo, "Estamos chegando ao fim da monitoria."); fclose(arquivo); } // 2. Leitura char frase[100]; arquivo = fopen("monitoria.txt", "r"); if (arquivo != NULL) { fgets(frase, 100, arquivo); printf("Lido do C: %s\n", frase); fclose(arquivo); } return 0; }

Python

# 1. Escrita with open("monitoria.txt", "w", encoding="utf-8") as f: f.write("Estamos chegando ao fim da monitoria.") # 2. Leitura with open("monitoria.txt", "r", encoding="utf-8") as f: frase_na_memoria = f.read() print(f"Lido do Python: {frase_na_memoria}")

Referências de Estudo

O Programador Pragmático
Andrew Hunt & David Thomas. Um guia indispensável para ser um profissional completo, abordando ética, automação e refatoração.
Ver na Amazon
Código Limpo
Robert C. Martin. O clássico sobre escrever códigos legíveis e sustentáveis, focando na importância de sub-rotinas pequenas e bem nomeadas.
Ver na Amazon
Arquitetura Limpa
Robert C. Martin. Explica como estruturar sistemas para que sejam fáceis de manter e escaláveis, aplicando os princípios fundamentais do SOLID.
Ver na Amazon
Fundamentos de Arquitetura
Mark Richards & Neal Ford (O'Reilly). Uma visão moderna sobre padrões de design e as decisões técnicas que definem softwares de sucesso.
Ver na Amazon