VB .NET - Agenda de Contatos


Este é um programa feito na linguagem VB .NET que permite criar uma agenda de contatos.

Ela não usa banco de dados e salva os dados em um arquivo texto chamado contatos.txt.

O diferencial é que ela utiliza um componente (CButtonLib.dll) com botões de A a Z que permite classificar os nomes em ordem alfabética.

Basta clicar na aba referente à letra inicial do nome do(s) contato(s) para exibi-los no formulário:

O código do botão para salvar os dados é o seguinte:

Private Sub btnSalvar_ClickButtonArea(ByVal Sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles btnSalvar.ClickButtonArea

        'valida os dados
        If txtNome.Text = "" Or txtEmail.Text = "" Or txtTelefone.Text = "" Then
            MessageBox.Show("Verifique se todos os dados foram informados", "Informação!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
            Exit Sub
        End If

        If File.Exists(strPath) Then
            'define o  FileStream e o StreamWriter
            fs = New FileStream(strPath, FileMode.Append)
            sw = New StreamWriter(fs)

            'Define a escrita dos dados
            strAppend = txtNome.Text & "," & txtEmail.Text & "," & txtTelefone.Text
            sw.WriteLine(strAppend)

            'exibe o resultado
            MessageBox.Show("Contato Incluído !", "Incluido com Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

            'libera 
            sw.Close()
            fs.Close()
            sw.Dispose()
            fs.Dispose()
        Else
            MessageBox.Show("O arquivo não existe. Deseja criar o arquivo ?", "ERRO", MessageBoxButtons.YesNo, MessageBoxIcon.Error)
            If ret = Windows.Forms.DialogResult.Yes Then
                File.Create(strPath)
                'Sucesso e o arquivo foi criado
                MessageBox.Show("Arquivo Criado...(contatos.txt)", "Arquivo Criado!", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Else
                'a incluir
            End If
        End If
    End Sub

A leitura do arquivo contatos.txt que lê os dados e exibe no controle DataGridView é feita pelo código abaixo:

 Private Sub AbrirArquivoTexto(ByVal fname As String)
        Dim i As Integer = 0
        Dim contadorLinha As Integer = 0
        Dim ts As StreamReader
        Dim fs As FileStream
        Dim sw As StreamWriter
        Dim sr As StreamReader
        Dim strArquivo As String
        Dim partes() As String
        If File.Exists(strTemp) Then
            File.Delete(strTemp)
        End If
        'recria o arquivo
        ts = New StreamReader(File.Create(strTemp))
        ts.Close()
        ts.Dispose()
        'limpa o datagridview
        dgv1.SelectAll()
        dgv1.ClearSelection()
        'inicia o contador de linha aqui
        Try
            fs = New FileStream(fname, FileMode.Open, FileAccess.Read)
            sw = New StreamWriter(strTemp, True)
            sr = New StreamReader(fs)
            strArquivo = sr.ReadLine()
            Do Until strArquivo Is Nothing
                partes = strArquivo.Split(",")
                If partes(0).StartsWith(lblLetter.Text) Then
                    contadorLinha += 1
                    sw.WriteLine(strArquivo)
                Else
                    'não faz nada
                End If
                strArquivo = sr.ReadLine
            Loop
            'libera
            fs.Close()
            sw.Close()
            sw.Dispose()
            sr.Close()
        Catch ex As Exception
        End Try
        If contadorLinha > 0 Then
            dgv1.RowCount = contadorLinha
            Try
                sr = File.OpenText(strTemp)
                strArquivo = sr.ReadLine()
                For i = 0 To dgv1.RowCount - 1
                    partes = strArquivo.Split(",")
                    If partes(0).StartsWith(lblLetter.Text) Then
                        dgv1.Rows(i).Cells(0).Value = partes(0)   'nome
                        dgv1.Rows(i).Cells(1).Value = partes(1)   'email
                        dgv1.Rows(i).Cells(2).Value = partes(2)   'telefone
                        dgv1.Update()
                    Else
                        'não faz nada
                    End If
                    strArquivo = sr.ReadLine()
                Next
                'libera.
                sr.Close()
                sr.Dispose()
            Catch ex As Exception
            End Try
        Else
            MessageBox.Show("Não existe contato para a letra selecionada. Grave o contato para esta letra .", "Erro")
        End If
    End Sub

 

Simples assim só com o VB .NET.

Pegue projeto completo esta no   SUPER DVD .NET.

Marcos 13:7 Quando, porém, ouvirdes falar em guerras e rumores de guerras, não vos perturbeis; forçoso é que assim aconteça: mas ainda não é o fim.

Referências:


José Carlos Macoratti