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: