Preenchendo uma Caixa de Combinação com um arquito texto
Vamos preencher uma caixa de combinação (ComboBox) com o conteúdo de um arquivo texto. Isto pode ser útil algum dia em algum lugar... :-) . Vamos colocar o código para fazer o serviço em uma função. Você sabe o que é uma função ?
Uma função consiste de um módulo onde o código realiza uma tarefa e retorna o resultado para o programa que a chamou. O Visual Basic possui muitas funções intrínsecas . Como exemplo vejamos a função que calcula o seno de um número : sin(numero) . Basta você informar o número que a função retorna o valor do seno deste número, este número é o que chamamos argumento da função ; uma chamada para esta função poderia ser assim escrita:
Dim Angulo, Seno, Cossecante
|
Assim Sin(angulo) irá calcular o valor do seno para o angulo informado e retornará o valor para variável seno.
A nossa função é o tipo de função que chamamos - Função definida pelo usuário - ou seja uma função que criamos para resolver um determinado problema. Nossa função foi definida assim:
Public Function
PopularListControldoArquivo(ListControl As Object, Caminho As String,Optional Delimitador As String =
vbCrLf)
As Boolean
Public - indica que a função será acessível por todas as procedures em todos os módulos.
PopularListControldoArquivo - é o nome da função.
Os argumentos são:
ListControl: O controle a utilizar (combobox,
listbox, etc...)
Caminho : O caminho completo do arquivo texto a ler. (
Ex: C:\teste\arquivo.txt )
Delimitador: (Opcional) O delimitador usado para dividir o conteúdo
do arquivo em itens (o padrão é vbCrlf) cada linha é um item.
A função irá retornar um valor boleano: True ou False .
Vamos ao projeto e ao código:
Insira o seguinte código no formulário:
Public Function
PopularListControldoArquivo(ListControl As Object, Caminho As String, _ Optional Delimitador As String = vbCrLf) As Boolean Dim objFso As New Scripting.FileSystemObject Dim objTextStream As Scripting.TextStream Dim strConteudo As String Dim arrConteudo() As String Dim lCtr As Long, lCount As Long On Error GoTo Erro_trata: 'Verifica se o arquivo existe If Dir(Caminho) = "" Then Exit Function 'limpa o controle ListControl.Clear 'Obtem o conteudo do arquivo Set objTextStream = objFso.OpenTextFile(Caminho, ForReading) strConteudo = objTextStream.ReadAll objTextStream.Close 'Divide o conteudo do arquivo baseado no delimitador arrConteudo = Split(strConteudo, Delimitador) lCount = UBound(arrConteudo) 'Preenche o controle For lCtr = 0 To lCount ListControl.AddItem arrConteudo(lCtr) Next 'Selecione o primeiro item do controle If ListControl.ListCount > 0 Then ListControl.ListIndex = 0 End If PopularListControldoArquivo = True Erro_trata: Set objTextStream = Nothing Set objFso = Nothing End Function |
Private Sub Command1_Click() PopularListControldoArquivo Combo1, "C:\arquivo.txt", vbCrLf End Sub |
Aqui passamos como parâmetros o nome do controle que queremos preencher - combo1
O nome do arquivo que iremos usar para preencher a combobox - c:\arquivo.txt
Obs: Você pode criar um arquivo texto usando o bloco de notas. Foi o que fizemos no exemplo.
Ao executar o projeto quando se clica no botão de comando temos o preenchimento da combo como abaixo:
Tchau.. ,