Ninguém mais pode duvidar da importância da Internet como meio de troca de informações e serviços no mundo atual. Na verdade parece que caminhamos para uma utilização tão abragente da Internet que qualquer previsão por mais futurística que seja já nasce desatualizada.
No início era preciso conhecer HTML seus tags, e, usando o velho Notepad fazer na unha as páginas para exibição na Web, hoje com alguns cliques gera-se um site completo sem conhecer nada do que anda pelos bastidores da linguagem; e é VBScript e JavaScript e Perl e CGI e ASP e ....
Bem, nosso intuito com este artigo é bem modesto , trivial para ser mais exato. Queremos apenas gerar arquivos no padrão HTML com os dados de nossas tabelas. É isso mesmo !.
Imagine que você tem uma tabela com 500 produtos cadastrados em um banco de dados Access e precisa gerar um catálogo on-line com intencão de divulgar seus produtos na internet. O que você faria ? Criar uma tabela usando HTML é fácil !! e digitar o nome e o preço dos seus produtos ? Seria um trabalho intenso , não é mesmo ?
Bem , vamos mostrar , através de um código simples, usando algumas funções já pouco usadas do VB , que podemos gerar tal tabela no formato HTML usando o Visual Basic e resolver nosso problema com apenas um clique. Então vamos em frente.
Nosso projeto é simples , ele deve fazer basicamente o seguinte:
1-Receber a informação do nome do banco de dados Access e mostrar todas as tabelas deste banco de dados. 2-Receber o nome de arquivo com extensão HTM , o qual será o nome arquivo de saída gerado pelo Visual Basic com os dados da tabela selecionada. 3-Após gerar a página iremos acionar o Browser e mostrar a página gerada.( perfumarias...)
Vamos criar um projeto com nome de db_html.vbp o qual é composto dos seguintes controles:
![]() |
Após selecionar a tabela basta clicar no botão que dispara
a rotina para gerar o arquivo HTML e no final o sistema indica quantos
registros foram processados.
Ao terminar a geração do arquivo HTML acionamos o browser via código VB para mostrar a página gerada. |
Código do modulo db_html.bas
'API para chamar a url
Private Declare Function ShellExecute Lib "shell32.dll" _ Alias "ShellExecuteA" (ByVal hwnd As Long, _ ByVal lpOperation As String, ByVal lpFile As String, _ ByVal lpParameters As String, ByVal lpDirectory As String, _ ByVal nShowCmd As Long) As Long Private Const SW_SHOWNORMAL = 1 'Aciona o browser e mostra a página gerada
End Sub |
Option Explicit
Dim db As Database Dim caminho As String Dim tabela As String |
Private Sub Command3_Click()
With CommonDialog1
caminho = CommonDialog1.filename
End Sub |
Private Sub Command4_Click()
Dim tbl As TableDef On Error GoTo tabela_error Set db = DBEngine.Workspaces(0).OpenDatabase(caminho) List1.Clear
tabela_error:
|
Private Sub Form_Load()
caminho = App.Path
End Sub |
Private Sub Command1_Click()
Dim fnum As Integer Dim rs As Recordset Dim num_fields As Integer Dim i As Integer Dim num_processados As Integer Dim url As String On Error GoTo MiscError ' Abre o arquivo de saida
' Escreve o cabeçalho da página HTML
Print #fnum, ""
' Inicia a geração da tabela HTML
' abre a base de dados
' Abre a tabela
' Usa o nome dos campos como cabeçalho das colunas
' processa os registros da tabela
For i = 0 To num_fields - 1
rs.MoveNext
' Encerra a tabela
Print #fnum, "</BODY>"
' Fecha a tabela e a base de dados
MsgBox "Foram Processados " & _
url = App.Path & "\arquivo.htm" abre_webpage Me, url Exit Sub MiscError:
|
Private Sub List1_Click()
tabela = List1.List(List1.ListIndex) End Sub |
![]() |
Bem , o que vale a pena comentar neste artigo são as funções de baixo nível que o Visual Basic possue para trabalhar com abertura e gravação em arquivos. Estes comandos são uma herança da linguagem BASIC da qual o VB é originário. É bom lembrar que podemos ter arquivos sequenciais (arquivos textos) , aleatórios ( arquivos com registros) e binários( arquivos EXE, DLL ,etc.) .
Vejamos as principais funções e comandos de baixo nível para arquivos:
Open e Freefile
O comando Freefile retorna um número inteiro que representa o número próximo arquivo disponível. sintaxe - var=Freefile ou Freefile(num. arquivo)
O comando OPEN abre um arquivo : sintaxe - Open "dados.txt" For OutPut As 1
No nosso exemplo temos : fnum=Freefile e em seguida Open txtHTML.Text For Output As fnum isto significa que obtivemos o número do próximo arquivo livre e atribuímos ao arquivo txtHTML.text esse número que o identificará no sistema.
Write e Print
Os comandos Write e Print escrevem dados nos arquivos .
Print #fnum, "<H1>Página gerada pelo Visual Basic 5.0</H1>" - Grava no arquivo identificado por fnum os dados entre aspas . Esta é a diferença entre PRINT e WRITE . Ao usar PRINT você tem que formatar seus dados , já o comando WRITE insere os caracteres de controle de final de arquivo, nova lina(newline), carriage return, etc.
FileLen, LOF
A função FileLen retorna o tamanho em bytes do arquivo especificado. Tamanho=Filelen("C:\dados.txt")
A função LOF retorna o tamanho do arquivo para arquivos abertos.
Get e Put
Get e Put servem para ler e escrever informações a partir de arquivos do tipo Random e Binary, e utilizam posições de número de registro como parâmetros. Ex : Put #1 , 1 , texto grava no arquivo 1, a partir da posição 1 e Get #1 , 2 , Texto - Lê os dados do arquivo 1 , da posição 2.
SeeK. Loc
Seek retorna a posição da próxima operação de leitura e/ou gravação. Ex Seek #1, numero do registro
Loc retorna a posição atual de leitura/gravação. Ex: posicao=Loc(1) - retorna a posição dentro do arquivo
Input e Line Input
Lêm linhas de dados de um arquivo sequêncial. As linhas são textos retornados com marca de fim de linha e alimentação de linha ( carriage return e line feed). Ex : Line Input # 1 , registro
Close, EOF
Encerra a entrada/saída dos arquivos cujos indicativos , se passado sem parâmetro fecha todos os arquivos.
Close #1 - fecha o arquivo 1.
Eof (1) - retorna true se alcançar o final do arquivo
Essas funções podem ser utilizadas para tratar arquivos textos e também para ler e armazenar dados. Em breve vamos dar um exemplo de uma agenda pessoal feita usando as funções de baixo nível , aguardem.
Vejamos a seguir a título de exemplo um pedaço de código
que poderia ser usado para preencher uma combobox durante a abertura de
um formulário:
Private Sub Form_Load()
Dim file as integer dim nome as string file = Freefile Open App.Path & "c:\escola\alunos.txt" for input as #file Do Until EOF(file) Input #file , nome Combo1.Additem nome Loop Close #file End sub |