Você está na página 1de 14

Visual Basic

VIII – Ficheiros de Acesso Aleatório


CFAC – Concepção e Fabrico Assistidos
por Computador
João Manuel R. S. Tavares
Sumário
1. Tipos de dados definidos pelo
programador.

2. Introdução aos ficheiros de acesso


aleatório.

@2009 - João Manuel R. S. Tavares CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório 2
Tipos de Dados Definidos pelo
Programador
 Além dos tipos de dados básicos disponíveis
no Visual Basic, o programador também pode
criar estruturas de dados particulares e
especificas.
 Um exemplo típico é criar estruturas
semelhantes a um registro de itens num
arquivo, ou criar variáveis que servirão de
padrão no programa.

@2009 - João Manuel R. S. Tavares CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório 3
Tipos de Dados Definidos pelo
Programador
 Sintaxe para criar um tipo:
Type nome-do-tipo
campo1 As tipo-do-campo1
campo2 As tipo-do-campo2
...
End Type
Exemplo:
Type Reg_cliente
nome As string *50 strings com tamanho de
telefone As string *11 caracteres fixo.
End Type
@2009 - João Manuel R. S. Tavares CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório 4
Tipos de Dados Definidos pelo
Programador
 Declaração de uma variável (registo) de um tipo
definido pelo utilizador:
Dim nome-da-variável As tipo-definido-pelo-programador

 Utilizar uma variável de um tipo definido pelo


utilizador (registo):
nome-da-variável.campo (utilizar o . para aceder a um
determinado campo do
registo)

@2009 - João Manuel R. S. Tavares CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório 5
Exemplo: Utilizar uma Variável de
um Tipo definido pelo Programador
Type Reg_cliente
nome As string *50 Declaração de um tipo
telefone As string *11 definido pelo programador.

End Type
Sub Le_Cliente
Dim Cliente as Reg_cliente Variável local de um tipo
definido pelo programador.
Cliente.nome = TXBNome.text
Cliente.telefone = TXBTelefone.text
Acesso aos campos
End Sub
de um registo.

@2009 - João Manuel R. S. Tavares CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório 6
Ficheiros de Acesso Aleatório
 Ficheiros de acesso aleatório contém apenas dados de um
mesmo tipo definido pelo programador, designados por
registos (records). Os registos são numerados (1, 2, …) e
podem ser referenciados pelo seu número.
 Para ler/escrever um dado registo num ficheiro aleatório
não é necessário ler/escrever os elementos precedentes.
 Sintaxe para abertura de um ficheiro de acesso aleatório:
Open "filespec" For Random As #n Len = Len(recVar)
onde recVar é uma variável do tipo registo, filespec o
nome do ficheiro e n o se número de referência.
@2009 - João Manuel R. S. Tavares CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório 7
Ficheiros de Acesso Aleatório
 Sintaxe para escrita de um registo no ficheiro:
Put #n, r, recVar
onde r é a posição no ficheiro na qual será escrito o
registo.
 Sintaxe para leitura de um registo a partir de um
ficheiro:
Get #n, r, recVar
onde r é a posição do registo no ficheiro.
@2009 - João Manuel R. S. Tavares CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório 8
Ficheiros de Acesso Aleatório
 Função para determinar o número de caracteres
contido num ficheiro:
LOF(n)
onde n é o número de referência do ficheiro.
 Determinação do número de registos do tipo recVar,
definido pelo programador, existentes no ficheiro:
LOF(n)/Len(recVar)
onde n é o número de referência do ficheiro.

@2009 - João Manuel R. S. Tavares CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório 9
Exemplo de Utilização de um Ficheiro de
Acesso Aleatório: Criação e Escrita no Ficheiro
Type collegeData
nom As String * 30 'Name of college
state As String * 2 'State where college is located
yrFounded As Integer 'Year college was founded
End Type

' in the declaration section


' of general
Dim recordNum As Integer

@2009 - João Manuel R. S. Tavares CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório 10
Exemplo de Utilização de um Ficheiro de Acesso
Aleatório: Criação e Escrita no Ficheiro (Cont.)
Private Sub cmdAddCollege_Click()
Rem Write a record into the file COLLEGES.TXT
Dim college As collegeData
Let college.nom = txtCollege.Text
Let college.state = txtState.Text
Let college.yrFounded = Val(txtYear.Text)
Let recordNum = recordNum + 1
Put #1, recordNum, college
Let txtCollege.Text = ""
Let txtState.Text = ""
Let txtYear.Text = ""
txtCollege.SetFocus
End Sub
@2009 - João Manuel R. S. Tavares CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório 11
Exemplo de Utilização de um Ficheiro de Acesso
Aleatório: Criação e Escrita no Ficheiro (Cont.)
Private Sub cmdDone_Click()
Close #1
End
End Sub

Private Sub Form_Load()


Rem Create COLLEGES.TXT
Dim college As collegeData
Open "COLLEGES.TXT" For Random As #1 Len = Len(college)
Let recordNum = 0
End Sub

@2009 - João Manuel R. S. Tavares CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório 12
Exemplo de Utilização de um Ficheiro de
Acesso Aleatório: Acesso ao Ficheiro
Type collegeData
nom As String * 30 'Name of college
state As String * 2 'State where college is located
yrFounded As Integer 'Year college was founded
End Type
Private Sub cmdDisplay_Click()
Call DisplayFile
End Sub

@2009 - João Manuel R. S. Tavares CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório 13
Exemplo de Utilização de um Ficheiro de
Acesso Aleatório: Acesso ao Ficheiro (Cont.)
Private Sub DisplayFile()
Dim recordNum As Integer
Rem Access the random-access file COLLEGES.TXT
Dim college As collegeData
Open "COLLEGES.TXT" For Random As #1 Len = Len(college)
picOutput.Cls
picOutput.Print "College", , "State", "Year founded"
For recordNum = 1 To 3
Get #1, recordNum, college
picOutput.Print college.nom, college.state, college.yrFounded
Next recordNum
Close #1
End Sub
@2009 - João Manuel R. S. Tavares CFAC: Visual Basic: VIII - Ficheiros de Acesso Aleatório 14

Você também pode gostar