Chegamos ao final deste minicurso de C#. Para encerrá-lo, vamos continuar trabalhando no formulário frmSobre apenas por uma questão prática. O objetivo aqui será deixar que o usuário personalize a imagem que será exibida na PictureBox e claro que um programa comercial não permitiria tal operação, mas apenas para que aprendamos como gerar e ler arquivos texto, o exemplo neste formulário será propício. Faremos, também, com que o sistema carregue automaticamete a imagem escolhida sempre que este formulário for aberto. Para isso teremos que salvar o nome do arquivo que contém a foto, bem como o caminho até a pasta em que ele se encontra. Nós até poderíamos armazenar isso em um arquivo RTF, que já sabemos como criar, mas vamos aumentar nosso horizonte de conhecimentos! Agora vamos criar um arquivo TXT contendo essa informação, pois assim aprenderemos também a lidar com algumas ferramentas do Namespace System.IO.

Bem, como primeiro passo vamos inserir este Namespace em nossa aplicação, no formulário frmSobre, da seguinte forma:

Escrevendo e lendo arquivos texto C#

Feito isso vamos criar uma variável global, privada, que armazenará o caminho do arquivo, da seguinte forma:

Escrevendo e lendo arquivos texto C#

Agora vamos localizar o melhor ponto para obtermos o nome do arquivo de imagem selecionado pelo usuário, que é o indicado pela imagem abaixo:

Escrevendo e lendo arquivos texto C#

O ponto é o indicado pela flecha, no método FileOk da ferramenta OpenFileDialog. Bem, mas por que eu escolhi este ponto e não outro qualquer? Acontece que neste ponto podemos facilmente obter o caminho do arquivo através do método FileName do "ofdLogo", presente no comando logo acima. Para conseguir isso faremos a seguinte inserção:

Escrevendo e lendo arquivos texto C#

Com isso teremos, na variável strCaminhoArquivo, o caminho do arquivo selecionado pelo usuário. Na sequência faremos alterações no código referente ao botão "Salvar" do frmSobre. O primeiro passo será remover o código que faz o salvamento do RichTextBox, afinal de contas agora ele já está gerado e é somente leitura. Portanto, as linhas a serem removidas são:

Escrevendo e lendo arquivos texto C#

O código a ser inserido é:

Escrevendo e lendo arquivos texto C#

Comentando-o, teremos:

Escrevendo e lendo arquivos texto C#

Aqui vale uma importante observação: claro que verificar se um arquivo existe, apagá-lo e cria-lo novamente apenas para armazenarmos uma pequena informação de configuração não é a estratégia mais profissional, no entanto o objetivo aqui foi, “pegando carona” no tópico anterior sobre a geração de arquivos RTF, fazer uma pequena demonstração de como gerar arquivos TXT também. Em C# existem classes e dezenas de métodos para manipulação de dados em arquivos que nos permitiriam fazer de tudo o que imaginássemos com os dados, evitando essa exclusão desnecessária, no entanto a parte de manipulação de arquivos daria um minicurso, então não coloquemos foco nisso agora. Quis fazer este comentário apenas para que não fique a impressão de que essa estratégia utilizada é a única que temos. Repito que não é e ela sequer é boa, mas eu a utilizei para demonstrar a criação de um arquivo TXT que, para o nosso exemplo, apenas fará o armazenamento do endereço da imagem selecionada pelo usuário com o logotipo da aplicação.

Bem, mas vamos continuar...

Vou definir como logotipo um arquivo que tenho na minha área de trabalho, chamado Logo.png.

Escrevendo e lendo arquivos texto C#

Agora vou abrir o arquivo c:\CB\Config.txt

Escrevendo e lendo arquivos texto C#

Aí está o correto endereço do arquivo selecionado como logotipo, no entanto ele ainda não é carregado automaticamente, assim como acontece com o conteúdo do RichTextBox.

Vamos criar o código para isso. Para efetuarmos a leitura de um arquivo texto, devemos fazer uso da classe StreamReader(ou TextReader). Através dela poderemos ler um arquivo e gerar uma sequência de caracteres, que pode ser armazenada em uma variável do tipo string.

A forma de utilização é bastante simples. Como queremos que a ação de leitura e preenchimento da PictureBox aconteça quando o formulário for carregado, vamos inserir, no método Load do mesmo, o seguinte comando:

Escrevendo e lendo arquivos texto C#

Comentando-o, teremos:

Escrevendo e lendo arquivos texto C#

Agora vamos executar a aplicação e abrir o formulário de “Sobre o Programa” para ver o que acontece...

Escrevendo e lendo arquivos texto C#

Aí está o nosso logotipo automaticamente carregado!

No entanto, vamos tentar alterar a imagem e salva-la, apenas para testar mais uma vez e termos a certeza de que tudo funciona bem. Vejamos o que acontece quando eu tento selecionar outra imagem qualquer e clico no botão "Salvar"...

Escrevendo e lendo arquivos texto C#

Ooops! Não funcionou! Pois é, mas isso já era esperado. Vejam que a mensagem que o Visual C# nos retorna é que o arquivo Config.txt não pode ser acessado por já estar aberto. Isso acontece porque no método Load do formulário estamos usando o objReader para efetuar a leitura do arquivo Config.txt e ele permanece “lendo” o arquivo, ou seja, permanece aberto e vinculado ao objReader, por isso quando tentamos fazer a alteração do conteúdo, não é possível. Isso é extremamente fácil de resolver! A classe StreamReader possui um método camado Dispose, que é responsável por liberar os recursos utilizados pelo objeto, que no nosso exemplo é o objReader, e outro chamado Close, que fecha o objeto.

Vamos inseri-los após a colocação do endereço na variável strTemp, como ilustra a imagem abaixo:

Escrevendo e lendo arquivos texto C#

Com essa pequena alteração podemos evitar aquele erro, já que o arquivo Config.txt estará liberado pela aplicação após a leitura e o formulário funcionará corretamente!

Agora, para evitar que o usuário tente salvar um endereço vazio, vamos alterar a propriedade Enabled do botão btnSalvar para "False", e habilitá-la para "True" somente quando uma foto for selecionada, no seguinte trecho de código:

Escrevendo e lendo arquivos texto C#

Fazendo isso, o botão "Salvar" somente estará habilitado após o usuário ter selecionado um arquivo de imagem para a PictureBox.

Com isso encerramos o minicurso de C#. Vocês encontrarão outros tópicos em seções como a "Dicas/Tutoriais", que são totalmente aleatórios, apenas envolvendo assuntos que achei interessantes. Recomendo que vocês os leiam também e, para encerrar por completo, acessem a página de Comentários, que é o tópico seguinte.


HARDWARE

Entendendo o seu computador

O que há dentro do meu computador?

Existem alguns componentes fundamentais presentes dentro do seu computador e é muito importante que você conheça um pouco sobre eles, seja para argumentar com algum vendedor durante a compra de um novo PC ou para identificar alguma atitude desleal de algum técnico que esteja te passando um orçamento para reparo. Na seção Raio-X aqui do Contém Bits você pode conhecer e entender mais detalhadamente sobre cada componente, ou também pode clicar abaixo no componente que deseja, para conhecê-lo melhor.

  • Gabinetes

  • Placas-Mãe

  • Processadores

  • Memória

  • Fontes

  • Drives Ópticos

  • Discos Rígidos

  • SSD

  • Placas de Som

  • Placas de Vídeo

Você Sabia?

O personagem Mario só possui bigode porque quando ele foi criado, em 1981, a resolução de tela dos equipamentos disponíveis não permitia que fosse desenhada uma boca, então os desenvolvedores fizeram o grande bigode para contornar essa limitação tecnológica.


O título Asteroids, do Atari, possui recorde de pontuação há 30 anos. Em 1982 um americano chamado Scott Safran atingiu a marca de 41.336.440. Atualmente ele faz parte de um minúsculo grupo de jogadores que conseguiram manter seus recordes por mais de 30 anos.


O épico jogo River Raid, do Atari, foi desenhado e boa parte de sua programação foi feita por uma mulher: Carol Shaw, uma excelente programadora e funcionária da Activision em 1982. Saiba mais sobre a história deste incrível jogo, aqui.


A primeira versão do clássico Mega Man, para Nintendo 8 bits, tem seu recorde de pontos estabelecido em 03/11/2006, por David Archey, que cravou 2.396.700 pontos, terminando o jogo.


Em 1949 a revista Popular Mechanics fez uma previsão para o futuro, dizendo: "Um dia os computadores pesarão menos do que 1,5 tonelada". E pensar que temos smartphones capazes de realizar milhões de vezes mais operações do que os computadores daquela época.


Nos primeiros oito dias após o lançamento do console Nintendo Wii foram vendidas 600 mil unidades. Isso equivale a quase um por segundo e estes incríveis números são referentes às vendas apenas nos EUA!


Considerando todas as adaptações de jogos de videogame para o cinema, a mais bem sucedida foi Lara Croft: Tomb Raider, lançado em 2001 e que faturou 274 milhões de dólares. Ele foi dirigido por Simon West e estrelado pela bela Angelina Jolie.


Criar um jogo é muito mais complexo do que parece. São milhares, às vezes, milhões de linhas de código. Isso não é exagero! Apenas o jogo Ultima Online possui 6.006.313 linhas de programação, totalizando 25.103.295 palavras


Apenas no ano de 1982, o clássico Pac Man vendeu mais de 400 mil máquinas de fliperama em todo o mundo e recebeu cerca de 7 bilhões de moedas nestas máquinas. Saiba mais.


Instalar vários aplicativos com o mesmo propósito, como editores de texto, reprodutores de músicas ou vídeos e até programas antívirus sobrecarregam o seu sistema operacional e ainda ocupam espaço desnecessário em seu HD. Tenha apenas um bom programa para cada função.


Até a primeira metade dos anos 90 era bastante comum que as trilhas sonoras dos games fossem criadas por mulheres e a responsável pelas músicas do clássico Street Fighter 2 foi Yoko Shimomura. Segundo ela, o ritmo "Tararirarin" da música tema do personagem Blanka, do Brasil, veio à sua cabeça enquanto ela estava no trem a caminho da Capcom.


O primeiro computador a conseguir rodar o jogo Spacewar era o PDP-1, que custava 120 mil dólares e pertencia ao Massachusetts Institute of Technology. O jogo demorou 200 horas para ser desenvolvido, em 1962, e seu criador foi um cientista da computação chamado Steve Russel.


O filme Mortal Kombat, inspirado no jogo de mesmo nome, faturou 23 milhões de dólares apenas no fim de semana de estreia nos EUA. Ainda sobre este título de sucesso, outra cifra que impressiona é o faturamento ao longo do primeiro ano: 1 bilhão de dólares no mundo todo.