• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

JLDR

[VB 2005 Express] Trabalhar com ficheiros de texto (Parte I)

5 mensagens neste tópico

Olá a todos. Este é o meu primeiro contributo para o fórum e queria apenas ressalvar que não estou aqui com intensão de querer ensinar seja quem for. Acontece que fiz muita programação em Visual Basic (desde a versão 4 até à 6) e agora, no momento da migração para a nova plataforma .NET, estou na fase da descoberta de como fazer o que fazia anteriormente no VB6. Por isso mesmo permitam-me que este tipo de tópicos sirva para eu consolidar a matéria aprendida e, já agora, dar uma ajuda a quem precisar dela. Agradecia que, caso entendam, me corrijam sempre que acharem que há forma mais directa e fácil de fazer as tarefas propostas.

Para além disso escolhi a plataforma VB 2005 Express Edition por uma razão óbvia. Todos o podemos ter e usar sem preocupações relativamente à legalidade. E para quem quer fazer umas brincadeiras para distribuir depois aos amigos pela net fora, retira certamente algumas dores de cabeça (pelo menos a mim tira).

Posto isto, vamos ao que interessa...

Trabalhar com ficheiros de texto no VB 2005 Express (Parte I)

Antes de aprender a trabalhar com bases de dados (e até mesmo depois), uma das coisas que sempre usei com frequência foi o recurso a ficheiros de texto para guardar informação.

Foi uma das primeiras coisas que me ocorreu quando abri a porta à plataforma .NET: Como se faz? Já não há o Open Ficheiro For Output As #1?

E vai daí estou a começar de descobrir que agora é um pouco mais simples.

Guardar texto num ficheiro

Genericamente existem duas situações nas quais podemos gravar texto num ficheiro:

  • Gravar sempre um novo ficheiro com o texto que pretendemos;
  • Adicionar texto a um ficheiro já existente.

Para ambos os casos vamos assumir a ROOT da drive C ( c:\ ) como o local de destino/presença do nosso ficheiro FicheiroTexto.txt

Vamos ao primeiro caso. Queremos clicar num botão e gravar uma série de linhas de texto (ou apenas uma) no nosso ficheiro. No caso do ficheiro não existir, é criado um ficheiro novo com os dados. No caso do ficheiro já existir, todos os dados nele gravados serão perdidos e substituídos apenas pelos novos. É a limpeza ao que existe, basicamente  :biggrin:

.....................................................................

Imports System.IO

Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim Ficheiro As New StreamWriter("c:\Ficheiro.txt")
        Ficheiro.WriteLine("Primeira Linha")
        Ficheiro.WriteLine("Segunda Linha")
        Ficheiro.Close()

        End

    End Sub
End Class

.....................................................................

Uma vez que vamos usar StreamWriter e que este pertece ao namespace System.IO fez-se o import logo no início. Para não termos que usar (System.IO.StreamWriter)

Tudo o resto desenrola-se dentro de um botão no seu evento click.

Na linha Dim Ficheiro As New StreamWriter("c:\Ficheiro.txt") definimos o nome do objecto que vamos usar para a operação. Neste caso Ficheiro e informamos desde logo que queremos StreanWriter (escrever) e entre as aspas indicamos o caminho completo do nosso ficheiro.

Nas linhas que se seguem vamos gravar o texto que queremos no ficheiro. Para isso usamos a instrução Ficheiro.WriteLine("texto texto texto"). A cada instrução destas no código é adicionada uma nova linha no ficheiro de texto contendo o que está entre as aspas.

No final da operação não nos podemos esquecer de fechar a tarefa com a instrução Ficheiro.Close()

A instrução End está lá apenas para terminar o programa.

Neste caso o ficheiro de texto, ao ser aberto, apresenta-se da seguinte forma:

Primeira Linha
Segunda Linha

» Imaginemos agora que queremos adicionar dois conjuntos de código na mesma linha do ficheiro de texto. Nesse caso temos:

        
        Dim Ficheiro As New StreamWriter("c:\Ficheiro.txt")
        Ficheiro.Write("O meu nick: ")
        Ficheiro.Write("JLDR")
        Ficheiro.Close()

Reparem que usámos a instrução Write em vez de WriteLine e o resultado do nosso ficheiro é o seguinte:

O meu nick: JLDR

E ainda:

        Dim Ficheiro As New System.IO.StreamWriter("c:\Ficheiro.txt")
        Ficheiro.WriteLine("Estou no fórum Portugal-a-Programar.")
        Ficheiro.Write("O meu nick: ")
        Ficheiro.Write("JLDR")
        Ficheiro.Close()

Neste caso em Ficheiro.WriteLine("Estou no fórum Portugal-a-Programar") introduzimos uma primeira frase. Na linha seguinte, a instrução Write vai criar uma entrada numa segunda frase e todas as instruções Write que se seguirem vão adicionar sempre o texto à frase da primeira instrução Write.

Neste caso o nosso ficheiro fica com o seguinte aspecto:

Estou no fórum Portugal-a-Programar.
O meu nick: JLDR

Como não convém alongar-me muito mais neste tópico, aqui fica uma parte do que interessa sobre o trabalho com ficheiros de texto no VB 2005 Express.

PS: Penso (gostava que me confirmassem) que também é assim nas outras versões do VB.NET.

Cumps  :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

só por curiosidade, existem também os métodos My.Computer.FileSystem.ReadAllText e My.Computer.FileSystem.WriteAllText

Bom Tutorial  :(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Pois, como ainda estou a entrar na onda, desconhecia essa opção. No entanto já deu para perceber que esta nova plataforma oferece várias maneiras de fazer a mesma coisa. Obrigado pela dica.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora