Propósito

✔ Programação GLOBAL® - Quaisquer soluções e/ou desenvolvimento de aplicações pessoais, ou da empresa, que não constem neste Blog devem ser tratados como consultoria freelance. Queiram contatar-nos: brazilsalesforceeffectiveness@gmail.com | ESTE BLOG NÃO SE RESPONSABILIZA POR QUAISQUER DANOS PROVENIENTES DO USO DOS CÓDIGOS AQUI POSTADOS EM APLICAÇÕES PESSOAIS OU DE TERCEIROS.

.: Vitrine

Carregando artigos...

Views

Mostrando postagens com marcador developer. Mostrar todas as postagens
Mostrando postagens com marcador developer. Mostrar todas as postagens

Por Que Você Precisa Entender ASCII, EBCDIC e UNICODE ao Programar em VBA? - Why You Need to Understand ASCII, EBCDIC, and UNICODE When Programming in VBA?

Por Que Você Precisa Entender ASCII, EBCDIC e UNICODE ao Programar em VBA? - Why You Need to Understand ASCII, EBCDIC, and UNICODE When Programming in VBA?

#ASCII #UNICODE #EBCDIC #VBA #programming #developer #coding #data #automation #software #technology #strings #databases #encoding #systems 


Por que você precisa entender ASCIIEBCDIC e UNICODE ao programar em VBA?

Compreendendo os Caracteres Invisíveis:

Exemplo 1: Identificação e Correção de Caracteres Não ASCII

EsteExemplo percorre uma string ou arquivo, identifica caracteres fora do intervalo ASCII padrão (32-126), e os substitui por um caractere genérico (`?`).


Sub ReplaceNonAsciiCharacters()

    Dim inputString As String

    Dim outputString As String

    Dim i As Integer

    Dim charCode As Integer

    

    ' Solicitar ao usuário uma string de entrada

    inputString = InputBox("Digite uma string para verificar caracteres não ASCII:", "Validação ASCII")

    

    ' Inicializa a string de saída

    outputString = ""

    

    ' Verifica cada caractere da string

    For i = 1 To Len(inputString)

        charCode = AscW(Mid(inputString, i, 1)) ' Obtém o código do caractere

        If charCode < 32 Or charCode > 126 Then

            outputString = outputString & "?" ' Substitui caracteres não ASCII

        Else

            outputString = outputString & Chr(charCode) ' Mantém caracteres ASCII

        End If

    Next i

    

    ' Exibir o resultado

    MsgBox "String corrigida: " & vbCrLf & outputString, vbInformation, "Resultado"

End Sub


A codificação de caracteres é um dos conceitos fundamentais em programação que muitas vezes é negligenciado, mas desempenha um papel crucial, especialmente ao trabalhar com diferentes fontes de dados, sistemas e linguagens.



Por Que Você Precisa Entender ASCII, EBCDIC e UNICODE ao Programar em VBA? - Why You Need to Understand ASCII, EBCDIC, and UNICODE When Programming in VBA?

Tabela ASCII no VBA: Como Resolver Problemas de Codificação - ASCII Table in VBA: How to Solve Encoding Issues

Dicas de VBA: Como Converter Entre ASCII, EBCDIC e UNICODE - VBA Tips: How to Convert Between ASCII, EBCDIC, and UNICODE

ASCII no VBA: O Guia Rápido para Iniciantes em Codificação de Caracteres - ASCII in VBA: A Quick Guide for Beginners in Character Encoding


Caracteres ASCII Padrão

Por Que Você Precisa Entender ASCII, EBCDIC e UNICODE ao Programar em VBA? - Why You Need to Understand ASCII, EBCDIC, and UNICODE When Programming in VBA?

No VBA, onde a manipulação de strings e dados é uma tarefa recorrente, o entendimento de padrões é essencial para evitar problemas de compatibilidade e garantir o funcionamento correto do código


VBA Tips - Tabela ASCII - American Standard Code for Information Interchange, EBCDIC, UNICODE

 


Códigos Alt para Emoji e outros personagens divertidos

 



Códigos Alt para letras Maiúsculas, letras Minúsculas, Números e Símbolos do Teclado

 


Códigos Alt – Como digitar caracteres especiais e símbolos de teclado no Windows usando as teclas Alt


ASCII, ou American Standard Code for Information Interchange, é um dos padrões mais antigos de codificação de caracteres e forma a base de muitos sistemas atuais. Ele utiliza 7 bits para representar 128 caracteres, incluindo letras, números e símbolos básicos. 


Por ser limitado, ASCII é suficiente para textos simples, mas não atende às necessidades de linguagens que possuem caracteres especiais ou alfabetos diferentes. 


Quando se trata de sistemas legados, o EBCDIC, ou Extended Binary Coded Decimal Interchange Code, ganha destaque. Este padrão é amplamente utilizado em mainframes da IBM e, embora seja menos comum em sistemas modernos, ele ainda pode ser encontrado em ambientes corporativos que utilizam tecnologia antiga. 


Se você estiver lidando com integração de dados ou manutenção de sistemas legados, o conhecimento de EBCDIC pode ser indispensável. 


Por outro lado, o UNICODE é o padrão universal que resolve as limitações tanto do ASCII quanto do EBCDIC. Ele permite representar mais de 143.000 caracteres de quase todos os idiomas do mundo, incluindo símbolos matemáticos, emojis e scripts antigos. 


Exemplo 2: Conversão de String para Codificação EBCDIC

EsteExemplo simula uma conversão de string de ASCII para EBCDIC usando uma tabela de mapeamento simplificada.


Sub ConvertToEBCDIC()

    Dim asciiToEBCDIC As Object

    Dim inputString As String

    Dim outputString As String

    Dim i As Integer

    Dim charCode As Integer

    

    ' Cria um dicionário para mapear ASCII para EBCDIC

    Set asciiToEBCDIC = CreateObject("Scripting.Dictionary")

    asciiToEBCDIC.Add 65, 193 'Exemplo: 'A' em ASCII (65) para 'A' em EBCDIC (193)

    asciiToEBCDIC.Add 66, 194 'Exemplo: 'B' em ASCII (66) para 'B' em EBCDIC (194)

    ' (Adicionar outros mapeamentos conforme necessário)

    

    ' Solicita ao usuário uma string de entrada

    inputString = InputBox("Digite uma string para converter para EBCDIC:", "Conversão para EBCDIC")

    

    ' Inicializa a string de saída

    outputString = ""

    

    ' Converte cada caractere usando o mapeamento

    For i = 1 To Len(inputString)

        charCode = Asc(Mid(inputString, i, 1))

        If asciiToEBCDIC.exists(charCode) Then

            outputString = outputString & Chr(asciiToEBCDIC(charCode))

        Else

            outputString = outputString & "?" ' Substitui caracteres não mapeados

        End If

    Next i

    

    ' Exibir o resultado

    MsgBox "String convertida para EBCDIC: " & vbCrLf & outputString, vbInformation, "Resultado"

End Sub


No contexto do VBA, trabalhar com UNICODE é especialmente útil para aplicações globais que precisam lidar com múltiplas linguagens e textos complexos. Ao programar em VBA, muitos desenvolvedores precisam manipular arquivos, seja para leitura, escrita ou integração com outros sistemas. Escolher a codificação correta é fundamental para evitar que dados sejam interpretados erroneamente ou corrompidos. Por exemplo, ao importar arquivos que contêm caracteres especiais, utilizar UNICODE pode garantir que esses caracteres sejam exibidos corretamente. Além disso, a falta de compreensão sobre codificação de caracteres pode levar a erros difíceis de diagnosticar. Um arquivo salvo em uma codificação incompatível pode resultar em erros de leitura, exibição incorreta de textos ou até falhas completas na execução do código. Para desenvolvedores na faixa dos 30 anos, que frequentemente estão em posições intermediárias ou avançadas na carreira, dominar esses conceitos pode ser um diferencial competitivo. Isso demonstra habilidade técnica e capacidade de resolver problemas complexos. 


A globalização e a diversidade de fontes de dados intensificaram a necessidade de compreender ASCIIEBCDIC e UNICODE. As APIs, bancos de dados e sistemas de terceiros geralmente utilizam diferentes padrões de codificação, e saber como lidar com essas diferenças permite criar soluções mais robustas. Investir tempo para entender esses padrões também ajuda a melhorar a manutenibilidade do código. Comentários claros sobre a escolha da codificação e o tratamento adequado dos dados reduzem o risco de problemas futuros. Além disso, o VBA, sendo amplamente usado em ambientes corporativos, frequentemente lida com dados confidenciais e críticos. Garantir a integridade e a precisão desses dados por meio de uma codificação correta é uma prática recomendada. 


Exemplo 3: Leitura e Gravação de Arquivos UNICODE

EsteExemplo lê um arquivo UNICODE (UTF-16) e o converte para ASCII, removendo ou substituindo caracteres não compatíveis.

 

Sub ConvertUnicodeToAsciiFile()

    Dim inputFile As String

    Dim outputFile As String

    Dim inputFileHandle As Integer

    Dim outputFileHandle As Integer

    Dim lineContent As String

    Dim convertedLine As String

    Dim i As Integer

    Dim charCode As Integer

    

    ' Definir caminhos dos arquivos

    inputFile = "C:\path\input_unicode.txt"   ' Caminho do arquivo de entrada (UNICODE)

    outputFile = "C:\path\output_ascii.txt"  ' Caminho do arquivo de saída (ASCII)

    

    ' Abrir o arquivo de entrada como texto UNICODE

    inputFileHandle = FreeFile

    Open inputFile For Input As #inputFileHandle

    

    ' Abrir o arquivo de saída para escrita

    outputFileHandle = FreeFile

    Open outputFile For Output As #outputFileHandle

    

    ' Processar linha por linha do arquivo

    Do While Not EOF(inputFileHandle)

        Line Input #inputFileHandle, lineContent

        convertedLine = ""

        

        ' Converter cada caractere para ASCII

        For i = 1 To Len(lineContent)

            charCode = AscW(Mid(lineContent, i, 1))

            If charCode < 32 Or charCode > 126 Then

                convertedLine = convertedLine & "?" ' Substituir caracteres fora do intervalo ASCII

            Else

                convertedLine = convertedLine & Chr(charCode)

            End If

        Next i

        

        ' Escrever a linha convertida no arquivo de saída

        Print #outputFileHandle, convertedLine

    Loop

    

    ' Fechar os arquivos

    Close #inputFileHandle

    Close #outputFileHandle

    

    MsgBox "Conversão concluída! Arquivo salvo em: " & outputFile, vbInformation, "Sucesso"

End Sub


Trabalhar com sistemas internacionais exige uma abordagem que acomode diferentes alfabetos e convenções. A capacidade de adaptar aplicativos VBA para lidar com esses requisitos amplia as oportunidades de carreira. ASCIIEBCDIC e UNICODE também desempenham um papel significativo no contexto da segurança da informação. Erros de codificação podem ser explorados por agentes maliciosos, e compreender como essas codificações funcionam ajuda a mitigar riscos. Outro aspecto importante é a interoperabilidade entre sistemas. Programadores VBA frequentemente interagem com outras linguagens, como Python ou Java, e entender os padrões de codificação facilita essa integração. Em resumo, compreender ASCIIEBCDIC e UNICODE não é apenas uma habilidade técnica, mas uma necessidade para quem deseja criar soluções escaláveis, seguras e preparadas para o futuro.


 Clique aqui e nos contate via What's App para avaliarmos seus projetos 

Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com

 PUDIM PROJECT 

eBook - PT - PUDIM PROJECT 2024 - Python Volume 01 - Funções Essenciais - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 02 - Funções Essenciais - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 03 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes


eBook - PT - PUDIM PROJECT 2024 - Python Volume 04 - Funções para Automatização - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 05 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 06 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes


eBook - PT - PUDIM PROJECT 2024 - Python Volume 07 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 08 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 09 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes


eBook - PT - PUDIM PROJECT 2024 - Python Volume 10 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 11 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes


 Série de Livros nut Project 

DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes

ASCII no VBA: O Guia Rápido para Iniciantes em Codificação de Caracteres - ASCII in VBA: A Quick Guide for Beginners in Character Encoding

ASCII no VBA: O Guia Rápido para Iniciantes em Codificação de Caracteres - ASCII in VBA: A Quick Guide for Beginners in Character Encoding
#VBA #ASCII #UNICODE #EBCDIC #encoding #data #developer #automation #technology #programming #strings #databases #coding #software #tips


Converter entre ASCIIEBCDIC e UNICODE no VBA é uma habilidade importante para desenvolvedores que frequentemente trabalham com diferentes sistemas e padrões de codificação. Cada uma dessas codificações desempenha um papel distinto no armazenamento e manipulação de dados, e compreender como realizar essas conversões pode evitar erros e otimizar processos.


Compreendendo os Caracteres Invisíveis:
Caracteres ASCII Padrão

Tabela ASCII no VBA: Como Resolver Problemas de Codificação - ASCII Table in VBA: How to Solve Encoding Issues

ASCII, ou American Standard Code for Information Interchange, é um dos padrões mais antigos e amplamente utilizados. Ele utiliza 7 bits para representar 128 caracteres, sendo ideal para textos em inglês e símbolos básicos. Contudo, sua limitação é evidente em projetos que lidam com outros idiomas ou caracteres especiais.



Por Que Você Precisa Entender ASCII, EBCDIC e UNICODE ao Programar em VBA? - Why You Need to Understand ASCII, EBCDIC, and UNICODE When Programming in VBA?

Tabela ASCII no VBA: Como Resolver Problemas de Codificação - ASCII Table in VBA: How to Solve Encoding Issues

Dicas de VBA: Como Converter Entre ASCII, EBCDIC e UNICODE - VBA Tips: How to Convert Between ASCII, EBCDIC, and UNICODE

ASCII no VBA: O Guia Rápido para Iniciantes em Codificação de Caracteres - ASCII in VBA: A Quick Guide for Beginners in Character Encoding


EBCDIC, criado pela IBM, é um padrão menos comum hoje em dia, mas ainda amplamente utilizado em sistemas legados, especialmente mainframes. Ele foi projetado para ambientes corporativos e possui um esquema de codificação diferente do ASCII, tornando a conversão entre os dois essencial em algumas situações. 


Exemplo 1: Converte uma string ASCII para UNICODE

Este exemplo converte uma string simples em ASCII para o formato UNICODE. Quando você trabalha com sistemas modernos ou internacionais, é importante garantir que os dados sejam manipulados corretamente em diferentes codificações. Aqui, vamos mostrar como fazer essa conversão no VBA.

Sub ConvertASCIItoUNICODE()

    Dim asciiString As String

    Dim unicodeString As String

    Dim i As Integer

    asciiString = "Hello, World!" ' String em ASCII

    

    ' Inicializar a string Unicode

    unicodeString = ""

    

    ' Converter cada caractere de ASCII para UNICODE

    For i = 1 To Len(asciiString)

        unicodeString = unicodeString & ChrW(Asc(Mid(asciiString, i, 1))) ' Usa ChrW para converter para UNICODE

    Next i

    

    ' Exibe o resultado

    MsgBox "String ASCII convertida para UNICODE: " & unicodeString

End Sub


Já o UNICODE é o padrão moderno e universal que resolve as limitações de ASCII e EBCDIC. Ele permite representar milhares de caracteres de praticamente todas as línguas e inclui emojis e símbolos especiais. No VBA, as strings internas são codificadas em UNICODE, facilitando o trabalho com diferentes idiomas. 


VBA Tips - Tabela ASCII - American Standard Code for Information Interchange, EBCDIC, UNICODE

 


Códigos Alt para Emoji e outros personagens divertidos

 



Códigos Alt para letras Maiúsculas, letras Minúsculas, Números e Símbolos do Teclado

 


Códigos Alt – Como digitar caracteres especiais e símbolos de teclado no Windows usando as teclas Alt


Para realizar conversões de ASCII no VBA, as funções Asc e Chr são indispensáveis. A função Asc converte um caractere em seu valor numérico ASCII correspondente, enquanto a função Chr realiza a operação inversa. Essas funções são úteis para manipulação básica de strings e conversão de caracteres. Quando se trata de EBCDIC, o VBA não possui suporte nativo. Para converter entre EBCDIC e ASCII ou UNICODE, é necessário usar tabelas de mapeamento que traduzem os valores de uma codificação para outra. Essas tabelas podem ser implementadas manualmente ou obtidas por meio de bibliotecas externas. 


Exemplo 2: Verifica a codificação de um arquivo e converte para UTF-8 (UNICODE)

 

Este exemplo demonstra como verificar a codificação de um arquivo e convertê-lo para UTF-8, um formato amplamente usado em UNICODE. Esse tipo de manipulação é essencial quando você trabalha com arquivos externos, como CSVs, para garantir que caracteres especiais sejam corretamente representados.

 

Sub ConvertFileEncodingToUTF8()

    Dim filePath As String

    Dim fileContent As String

    Dim fileNumber As Integer

    filePath = "C:\path\to\your\file.txt" ' Caminho do arquivo

    

    ' Abrir o arquivo para leitura

    fileNumber = FreeFile

    Open filePath For Input As fileNumber

    fileContent = Input$(LOF(fileNumber), fileNumber) ' Lê o conteúdo do arquivo

    Close fileNumber

    

    ' Salvar o conteúdo em UTF-8

    Open filePath For Output As fileNumber

    Print #fileNumber, fileContent ' Salva novamente com codificação UTF-8

    Close fileNumber

    

    MsgBox "Arquivo convertido para UTF-8!"

End Sub


A conversão entre UNICODE e ASCII é mais direta no VBA devido ao suporte interno ao UNICODE. No entanto, ao lidar com arquivos ou dados de sistemas externos, pode ser necessário realizar conversões explícitas para garantir a compatibilidade. Por exemplo, ao exportar dados em UNICODE para um sistema que suporta apenas ASCII, você deve mapear e remover caracteres não suportados. 


As APIs e bancos de dados modernos frequentemente retornam dados em UNICODE ou UTF-8, e o VBA pode exigir o uso de bibliotecas como ADODB para manipular esses dados corretamente. 


Exemplo 3: Comparação de Strings ASCII e EBCDIC para verificar compatibilidade

Neste exemplo, vamos criar uma comparação simples entre strings codificadas em ASCII e EBCDIC. Isso é útil quando você está lidando com sistemas legados que utilizam EBCDIC e precisa garantir a compatibilidade com sistemas modernos.


Sub CompareASCIIandEBCDIC()

    Dim asciiString As String

    Dim ebcdicString As String

    Dim i As Integer

    

    asciiString = "Test123" ' String em ASCII

    ebcdicString = "Test123" ' String equivalente em EBCDIC (precisa ser fornecida ou convertida)

    

    ' Simular uma comparação simples entre ASCII e EBCDIC

    For i = 1 To Len(asciiString)

        If Asc(Mid(asciiString, i, 1)) <> Asc(Mid(ebcdicString, i, 1)) Then

            MsgBox "Incompatibilidade detectada entre ASCII e EBCDIC!"

            Exit Sub

        End If

    Next i

    

    MsgBox "As strings são compatíveis entre ASCII e EBCDIC."

End Sub


O uso de objetos COM e outras bibliotecas externas pode ajudar na manipulação avançada de strings e na conversão de codificações. Para garantir precisão nas conversões, é importante validar os dados após o processo. Verificar se os caracteres convertidos correspondem aos originais pode evitar erros em aplicativos críticos. Outra prática recomendada é documentar as etapas de conversão no código, facilitando a manutenção futura. Trabalhar com grandes volumes de dados pode impactar o desempenho das conversões. 


Portanto, otimizar o código e reduzir conversões desnecessárias é essencial para garantir a eficiência do aplicativo VBA. Testar o código em diferentes ambientes também é crucial, pois problemas de codificação podem variar dependendo da plataforma ou sistema operacional. 


Ao integrar sistemas legados e modernos, o conhecimento de ASCIIEBCDIC e UNICODE no VBA é uma habilidade indispensável. Essa compreensão permite que desenvolvedores criem soluções flexíveis e robustas, adaptando-se às necessidades específicas de cada projeto. Além de melhorar a qualidade do código, o domínio dessas conversões contribui para a solução de problemas de compatibilidade, aprimorando a experiência do usuário. Investir tempo para aprender como converter entre esses padrões de codificação é um passo importante para qualquer desenvolvedor que deseja se destacar e criar projetos confiáveis e escaláveis. 


 Clique aqui e nos contate via What's App para avaliarmos seus projetos 

Envie seus comentários e sugestões e compartilhe este artigo!
brazilsalesforceeffectiveness@gmail.com

 PUDIM PROJECT 

eBook - PT - PUDIM PROJECT 2024 - Python Volume 01 - Funções Essenciais - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 02 - Funções Essenciais - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 03 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes


eBook - PT - PUDIM PROJECT 2024 - Python Volume 04 - Funções para Automatização - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 05 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 06 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes


eBook - PT - PUDIM PROJECT 2024 - Python Volume 07 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 08 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 09 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes


eBook - PT - PUDIM PROJECT 2024 - Python Volume 10 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes eBook - PT - PUDIM PROJECT 2024 - Python Volume 11 - Automatizando Postagens em Redes e Plataformas Sociais - Série PUDIM PROJECT — André Luiz Bernardes


 Série de Livros nut Project 

DONUT PROJECT: VBA - Projetos e Códigos de Visual Basic for Applications (Visual Basic For Apllication)eBook - DONUT PROJECT 2024 - Volume 03 - Funções Financeiras - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 02 - Conectando Banco de Dados - André Luiz Bernardes eBook - DONUT PROJECT 2024 - Volume 01 - André Luiz Bernardes
diHITT - Notícias