Visual Basic 6 - Importando um arquivo texto para uma tabela
Vamos mostrar outra maneira de importar um arquivo texto para uma tabela de um banco de dados access usando o Visual Basic ( Para maiores informações leia : Como tratar Arquivos textos com o Visual Basic ) .
Utilizaremos o bom e velho banco de dados Biblio.mdb ( usaremos uma copia do arquivo no diretório c:\teste) e um arquivo texto chamado texto.txt o qual iremos importar para o banco de dados Biblio.mdb. A tabela será criada em tempo de execução. O nosso arquivo texto tem o seguinte formato.
Vamos fazer de conta que ela é gerada por um Mainframe e que temos que importá-la para o nosso arquivo para um tratamento posterior. É importante frisar que devemos saber o layout do arquivo texto para montar nossa rotina de importação e quais as informações devemos extrair para gerar nossa tabela.
O arquivo a ser importado chama-se texto.txt e possui as seguintes informações:
O arquivo possui as informações separadas ( delimitadas) por uma vírgula (,) , e usaremos esta informação para montar a rotina que irá separar os campos.
Nosso trabalho será separar cada informação e compor uma tabela com os campos:
A estrutura da tabela já criada será a seguinte:
Private Sub Command1_Click() Dim F As Long, sLine As String, A(0 To 4) As String Dim db As Database, rs As Recordset On Error GoTo trata_erro F = FreeFile Open Text1.Text For Input As F Set db = DBEngine(0).OpenDatabase(Text2.Text) On Error Resume Next db.Execute "DROP TABLE ImportaTexto" db.Execute "CREATE TABLE ImportaTexto (ID LONG, [Desc] TEXT (50), " _ & "Quantidade LONG, Custo CURRENCY, DataPedido DATETIME)" Set rs = db.OpenRecordset("ImportaTexto", dbOpenTable) Do While Not EOF(F) Line Input #F, sLine ParseToArray sLine, A() rs.AddNew rs(0) = Val(A(0)) rs(1) = A(1) rs(2) = Val(A(2)) rs(3) = Val(A(3)) rs(4) = CDate(A(4)) rs.Update Loop MsgBox "Arquivo texto importado com sucesso !! " rs.Close db.Close Close #F Exit Sub trata_erro: MsgBox "Ocorreu o erro ==> " & Err.Description End Sub |
Sub ParseToArray(sLine As String, A() As String) Dim P As Long, LastPos As Long, I As Long P = InStr(sLine, ",") Do While P A(I) = Mid$(sLine, LastPos + 1, P - LastPos - 1) LastPos = P I = I + 1 P = InStr(LastPos + 1, sLine, ",", vbBinaryCompare) Loop A(I) = Mid$(sLine, LastPos + 1) End Sub |
Ao executar o seu projeto e clicar no botão de comando - Importar o arquivo texto selecionado - teremos a seguinte tela:
Se você abrir o banco de dados verá a tabela - Importatexto - criada e o seu conteúdo exibido como na tela a seguir:
Sem mais comentários e até a próxima dica...
Veja os
Destaques e novidades do SUPER DVD Visual Basic
(sempre atualizado) : clique e confira !
Quer migrar para o VB .NET ?
Quer aprender C# ??
Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? |
Gostou ? Compartilhe no Facebook Compartilhe no Twitter
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#