---
# System prepended metadata

title: Atividade Aula 18 - Síncrono e Assíncrono

---

# Atividade Aula 18 - Síncrono e Assíncrono

**Vamos fazer um pequeno trabalho para os Correios, ok? Com a recente pandemia, houve algumas dificuldades na entrega de cartas, então precisam que façamos a automação de parte desse processo pra eles. Precisamos fazer duas coisas diferentes:**

1. Baixe o arquivo `cartas.txt`. Nele você vai ver uma lista de cartas no seguinte formato:
```
Nicolas
Pablo
Pablo, eu preciso urgentemente de sua ajuda para me tornar um grande cozinheiro!
---
Pablo
Nicolas
Hoje eu to com soninho, mas amanhã a gente conversa.
```

Ou seja: a primeira linha é quem está enviando, o remetente; a segunda é quem deve receber, o destinatário; e a partir da terceira linha temos a mensagem. Além disso, múltiplas mensagens são separadas entre si por `---`.

O que queremos nesse caso é simplesmente formatar um pouco melhor o que estamos lendo. Leia o arquivo e escreva as mensagens no seguinte formato:

```
[INICIO DA MENSAGEM]
Remetente: Nicolas
Destinatário: Pablo
Mensagem: Pablo, eu preciso urgentemente de sua ajuda para me tornar um grande cozinheiro!
[FIM DA MENSAGEM]
[INICIO DA MENSAGEM]
Remetente: Pablo
Destinatário: Nicolas
Mensagem: Hoje eu to com soninho, mas amanhã a gente conversa.
[FIM DA MENSAGEM]
```
**Dica:** separe as mensagens em um array, depois percorra esse e para cada mensagem separe as linhas em outro array (você pode fazer isso usando `.split('\n')`). Use esse segundo array pra facilitar a formatação nessa forma pedida. Você também pode "limpar" os `\n` (quebras de linha) que sobrarem usando `.trim()` imediatamente depois de cada variável a ser limpa; essa função serve para apagar todos os espaços e quebras de linha antes e depois de uma string.

2. Ok, agora já resolvemos um dos problemas. O outro é bem mais assustador, porque na verdade acabaram bagunçando todos os endereços das cartas de alguma forma que é metafísica demais pra conseguirmos explicar. 

Baixe o arquivo `enderecos.txt`. Ele tem o formato seguinte:

```
Nicolas
Rua da Padaria, 123
---
Pablo
Rua da Pipoca, 321
```

Mais uma vez, leia o arquivo anterior, mas com a certeza de estar lendo ele antes de tudo. Dessa vez, você vai separar as mensagens em um array e deixar lá um pouquinho.
Depois disso, você quer ler o arquivo endereços, tendo a certeza de que leu ele depois do `cartas.txt`. Seu objetivo agora é, pra cada endereço, "casar" a informação de endereços do destinatário (**e só do destinatário**) com o nome, escrevendo em um arquivo `resultado.txt` algo mais ou menos assim:

```
[INICIO DA MENSAGEM]
Remetente: Nicolas
Destinatário: Pablo
Endereço: Rua da Pipoca, 321
Mensagem: Pablo, eu preciso urgentemente de sua ajuda para me tornar um grande cozinheiro!
[FIM DA MENSAGEM]
[INICIO DA MENSAGEM]
Remetente: Pablo
Destinatário: Nicolas
Endereço: Rua da Padaria, 123
Mensagem: Hoje eu to com soninho, mas amanhã a gente conversa.
[FIM DA MENSAGEM]
```

Se o endereço daquele destinatário não existir, simplesmente não imprima a linha de endereço.