Este documento apresenta os fundamentos avançados de programação orientada a objetos. Discute 1) procedimentos e funções, incluindo passagem de parâmetros, procedimentos e funções recursivas; 2) sintaxe de tabelas/arrays unidimensionais, multidimensionais e dinâmicas; 3) classes, módulos e arquivos. O objetivo é ensinar esses fundamentos para que se possa desenvolver aplicações mais complexas.
1. MÓDULO 12
Fundamentos Avançados
de Programação
Orientada por Objectos
Apresentação
Pretende-se leccionar fundamentos de programação avançados
tidos para que se possa desenvolver aplicações mais complexas.
2. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
1.
Procedimentos e Funções
Passagem de parâmetros por Referência
e por Valor;
Procedimentos e funções recursivas;
2.
Sintaxe de Tabelas/Arrays
Unidimensionais
Multidimensionais
Dinâmicas
3. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
3.
Classes
Conceitos Gerais
Criação de classes
Reutilização de Objectos
4.
Módulos
Noção de Módulo
Utilização de Módulos
4. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
5.
Ficheiros
Leitura e Escrita de ficheiros
sequenciais
Ficheiros de Acesso Aleatório
5. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
2. Objectivos de Aprendizagem
Definir e utilizar Procedimentos e Funções
“Utilizar parâmetros globais e locais”
Criar e utilizar tabelas em programação
Definir o n.º de elementos de uma tabela em tempo de execução
Criar e utilizar correctamente classes
Saber como e porque se reutilizam objectos
Utilizar módulos
Aceder a ficheiros
6. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Introdução
Variáveis
Variáveis, são espaços que reservamos em
memória para guardar determinados valores
durante a execução de uma determinada tarefa
ou programa.
7. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
AMBITO DECLARAÇÃO Somente onde é
declarada
Procedure Private, em procedure, Sub, ou Somente onde é
Function declarada
Module Private, na secção de Em cada
declarações de um Form, ou procedimento do
modulo (.frm, ou .bas) Form ou Modulo
Global Public, na secção de Em toda a aplicação
declarações de um Modulo
(.bas)
8. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
1. Procedimentos e Funções
1.1 Procedimentos - “O Conceito”
Os procedimentos constituem a base de toda e
qualquer linguagem de programação, uma vez que,
para além de permitirem uma conveniente separação
e agrupamento do código-fonte segundo a sua
finalidade, dão a possibilidade ao programador de
escrever o código apenas uma vez, pois os
procedimentos podem ser invocados a partir de outros
procedimentos, módulos de programação e projectos
diferentes, permitindo uma reutilização inteligente
do código-fonte.
9. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Tipos de Procedimentos
Tipo Descrição
Gerais São procedimentos definidos pelo programador, que
consistem num conjunto de instruções executadas
sequencialmente com o objectivo de desempenhar uma
tarefa específica. Este tipo de procedimentos pode aceitar
argumentos mas não retorna qualquer valor.
De A declaração deste tipo de procedimentos está a cargo
evento única e exclusivamente do editor de código. Escolher o
objecto e estar “atento” à “operação” a executar.
De São procedimentos definidos pelo programador que podem
função executar tarefas e/ou retornar um valor para o
procedimento que os invocaram.
10. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Procedimentos Gerais
Estes podem ser de dois tipos:
A- Não utiliza argumentos
B – Utiliza argumentos
Nota: Nenhum retorna valores
Sintaxe Tipo A: Exemplo Tipo A:
Sub procedimento()
[Instrução 1] Sub Colocar_texto()
[Instrução 2] Buttom1.text= “ola!”
[…] End Sub
[Instrução n]
End sub
11. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Sintaxe Tipo B
Sub Procedimento(argumento 1 [, argumento 2][,…][, argumento n])
[Instrução 1]
[Instrução 2]
[…]
[Instrução n]
End sub
Exemplo
Sub inicio()
Dim texto_a_enviar As String
Texto_a_enviar = “Ola!”
Colocar_texto(texto_a_enviar)
End Sub
Sub Colocar_texto(texto As String)
Buttom1.Text= texto
End Sub
12. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Procedimentos de evento: a escrita deste tipo de
procedimentos é semelhante à dos procedimentos gerais,
exceptuando a utilização do modificador Private – a
chamada directa a procedimentos de evento é feita pelo
próprio objecto quando reconhece a actividade para a qual
foi programado.
Sintaxe
Private Sub Objecto_evento(ByVal sender As
System.Object, ByVal e As system.EventArgs) Handles
Objecto.Evento
[Instrução 1]
[Instrução 2]
[…]
[Instrução n]
End sub
13. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Procedimentos de Função
Embora o objectivo dos procedimentos de função
possa não retornar um valor, são geralmente
utilizados para esse efeito, pois, na prática, utilizam-
se procedimentos gerais quando o objectivo é apenas
realizar uma tarefa (baseada ou não em parâmetros).
Tipo Utiliza Retorna um
Argumentos? Valor?
A NÃO SIM
B SIM Sim
Esta categoria de Funções/Procedimentos é
iniciada pela palavra Function e terminada por
End Function
14. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Sintaxe
Function Função (Lista de argumentos) As Tipo de Dados
[Instrução 1]
[Instrução 2]
[…]
[Instrução n]
Return Valor
End Function
Função - corresponde ao nome atribuído pelo programador à
função;
<Lista de Argumentos> - contém os parâmetros que a função
recebe (se os houver), bem como os respectivos tipos de
dados.
Tipo de Dados – indica o tipo de informação que a função vai
retornar;
Valor – é o valor retornado pela função
15. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Exemplo (procedimento de função sem argumentos - Tipo A )
Function Contar() As Integer
Dim controlos As Integer
Controlos = Me.Controlos.Count
Return controlos
End Function
(chamada a um procedimento de função sem argumentos)
Private Sub Buttom1_Click […]
Buttom1.Text = Contar() ‘chamada da função sem argumentos
End Sub
16. Exemplo (procedimento de função com argumentos - Tipo B)
Function Completo(nome As String, apelido As
String) As String
Dim nome_completo As String
nome_completo= apelido & “ , “ & nome
Return nome_completo
End Function
(chamada a um procedimento de função com argumentos)
Private Sub Buttom1_Click […]
Buttom1.Text = Completo (“Henrique”, “Loureiro”)
End Sub
17. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Objecto_Evento corresponde ao nome do
procedimento de evento formado pelo par
Objecto/Acção separados por um underscore
ByVal indica que os valores dos argumentos não
podem ser alterados
Sender é uma palavra-chave que indica que o
procedimento está relacionado com um objecto.
e – Corresponde ao conjunto de argumentos
específicos para o evento;
Handles indica que o procedimento se trata de
um procedimento de evento a ser reconhecido
pelo objecto em particular.
18. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Parâmetros por Valor ou por Referência
O padrão é o Visual Basic passar todos os parâmetros por referência ( ByRef ), ou seja, ao invés de
passar o valor actual do argumento ele passa um endereço de 32 bits onde o valor esta armazenado.
Desta forma se ocorrer qualquer alteração no valor do parâmetro isto será reflectido no valor
original do mesmo.
Para passar um parâmetro por valor usamos a palavra ByVal precedendo o parâmetro, com isto
estamos passando uma cópia do valor do parâmetro e não o seu endereço de localização.
Nota: Ao passar uma string por valor esta passa o endereço do primeiro byte de dados da string . Se
passar uma string por referência estará a passar o endereço de memória onde outro endereço esta
armazenado , neste caso o primeiro byte de dados da string.
A ter em conta:
As strings sempre são passadas por Valor ( ByVal ). Porém a função API poderá alterar o conteúdo
da variável string.
As estruturas definidas pelo usuário são sempre passadas por referência ( ByRef )
Os Vectores ( Arrays ) sempre são passados ByRef quando passados por inteiro para a função API.
Os valores numéricos podem ser passados por Valor ou por Referência dependendo da função
19. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Procedimentos e Funções Recursivas
Conceito
Um procedimento ou função diz-se recursivo
quando é definido em termos de si próprio, isto é,
quando se invoca a si próprio, directa ou
indirectamente (por intermédio de outros
procedimentos/funções).
Tipicamente a solução de um problema repetitivo
pode ser resolvido de uma forma iterativa
utilizando estruturas de controlo de ciclos
(estruturas repetitivas), ou de forma recursiva
utilizando a invocação sucessiva da solução.
20. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
VANTAGENS E DESVANTAGENS
Existem algumas vantagens e desvantagens na
utilização de métodos baseados na recursividade:
Vantagens:
A utilização de uma função recursiva pode simplificar
a solução de alguns problemas;
Pode-se obter um código mais conciso e eficaz nessas
situações;
Uma solução recursiva pode, por outro lado, eliminar
a necessidade de manter o controlo manual sobre
uma série de variáveis normalmente associadas aos
métodos alternativos à recursividade.
21. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Desvantagens:
As funções recursivas são geralmente mais lentas e
ocupam mais memória do que as funções iterativas
equivalentes, uma vez que são feitas muitas
chamadas consecutivas;
Um erro de implementação pode levar ao
esgotamento dos recursos associados à pilha (stack
overflow) que gere a chamada a funções. Isto é, caso
não seja indicada nenhuma condição de paragem, ou
essa condição foi definida de forma errada e nunca
será satisfeita, então o processo recursivo não terá
fim.
22. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
A recursividade permite
implementar algoritmos que
decompõem o problema a resolver
numa sucessão de problemas cada
vez mais simples com a mesma
estrutura do problema original. A
recursividade permite decompor um
problema em problemas mais
pequenos que têm a particularidade
de serem exactamente do mesmo
tipo do problema original.
23. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Funções Recursivas
Uma função recursiva é uma função que se refere a si
própria. A ideia consiste em utilizar a própria função
que estamos a definir na sua definição.
Em todas as funções recursivas existe:
Um passo básico (ou mais) cujo resultado é imediatamente
conhecido.
Um passo recursivo em que se tenta resolver um sub-
problema do problema inicial.
24. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
“Aplicação Factorial” - Exemplo
Esta função pode ser definida recursivamente em
função de um caso elementar e de uma forma geral:
0! = 1 (por definição, caso mais simples)
n! = n * (n - 1)! para n>0 (formula recursiva)
Função FACTORIAL(num: inteiro): inteiro
var temp: inteiro
Se num = 0 Então temp 1
Senão temp num * FACTORIAL(num – 1)
factorial temp
25. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Private Function Fact(num As
Integer)
If num = 0 Then
Fact = 1
Else
Fact = num * Fact(num - 1)
End If
End Function
26. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Tabelas/ Array
As variáveis do tipo Array, ao contrário das
escalares – que armazenam um valor de cada vez
– representam matrizes ou conjuntos de dados
alojados em posições ou índices bem definidos.
Todos os elementos de um array são do mesmo
tipo de dados
O comprimento de um array concebe o seu
número de elementos em função de um limite
inferior(considerado 0) e de um limite superior a
definir. Quando ao seu tamanho, os arrays
dividem-se em duas categorias – os de e os de
comprimento variável.
27. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Arrays de comprimento FIXO
Representam matrizes com um numero de
elementos constante, pela atribuição de índices
(limites). O limite inferior de um array é igual a
zero; o limite superior é incluído entre parênteses
curvos.
SINTAXE
Dim array(limite superior) As Tipo de Dados
Exemplos:
Dim alunos(7) As String ‘Matriz de 8 elementos
Alunos(3) =“Ana”
Alunos(0)=“Ronaldinho”
28. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Arrays de Comprimento Variáveis – (Tabelas
Dinâmicas)
São matrizes cujos limites não são especificados
aquando da sua declaração. O programador pode,
desta forma, alterar o tamanho do array
enquanto o código está a ser executado. A palavra
chave ReDim permite o redimensionamento do
array em qualquer ponto do programa.
SINTAXE
Dim array() As Tipo de Dados
29. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Exemplos:
Dim dias() As Date
Dias(0)= #1/1/1999#
ReDim dias(3)
Dias(2)= #1/1/1999#
ReDim dias(1) ‘O conteúdo de índice
2 é eliminado
30. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Arrays Unidimensionais
Uma matrix unidimensional é composta apenas por
um eixo, segundo um perfil linear. Todos os
elementos apresentados ao longo deste tópico fizeram
referência a arrays Unidimencionais.
Arrays Multidimensionais
As matrizes mais utilizadas são as matrizes
bidimensionais; a utilização de mais de duas
dimensões está presente, na maior parte dos casos,
em projectos muito específicos, como na concepção de
aplicações de engenharia, design e multimédia.
31. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Nota: O número máximo de dimensões suportado
por uma variável do tipo array é de 32.
Sintaxe – Declaração de Arrays Multimensionais
Dim array(dimensão1, dimensão2[,…][,dimensão
n]) As Tipo de Dados
Exemplos práticos
Dim ficha(9,3) As String
Ficha(3,2)=“10 de Janeiro”
Ficha(0,1)=“Ana Lopes”
Ficha(2,7)=“Luis Jardel” –ERRO no 2º limite
Superior
32. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
4 – Módulos
Noção de Módulo e Procedimentos
No contexto da programação, os Procedimentos
(vulgarmente conhecidos por rotinas) consistem num
agrupado de linhas de código(instruções) que seguem
uma sequência lógica, com Principio, Meio e Fim, cujo
objectivo é desempenhar uma tarefa específica. A um
conjunto de procedimentos dá-se o nome de Módulo.
Um programa pode ter um nº distinto de módulos e
procedimentos.
Ao nível do código, o início de um módulo de
programação é marcada pela palavra chave Module e
o seu fim pela instrução End Module
33. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Sintaxe (Criação de Módulos)
Module Nome
[Procedimento 1]
[Procedimento 1]
[…]
[Procedimento 1]
End Module
Aqui, Nome é o identificador único do módulo no
projecto em que se insere, e que é atribuído pelo
programador.
34. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Criação de Módulos
Podemos aceder a um módulo acedendo ao respectivo
ficheiro no Soluction Explorer e também podemos
adicionar módulos ao projecto.
Para criar mais módulos:
Escolha a opção de Adicionar Modulo do Menu Projecto
Surge uma caixa de dialogo Adicionar Novo Item. Aqui
poderá escolher o item Modulo, atribuir um nome e clicar
em Adicionar para terminar o processo de inserção.
Gravação de Módulos
O módulo é gravado através do processo
normal(fazendo clique no botão Guardar da barra de
ferramentas Standard ou escolhendo a opção
Guardar do menu ficheiro.
35. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Apagar Módulos
A remoção de módulos é feita exactamente da mesma
forma como a remoção de qualquer outro item
presente no Solution Explorer. Assim, bastará
seleccionar o módulo a eliminar e pressionar a tecla
Apagar.
36. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
3.
Classes
Conceitos Gerais
Uma classe é simplesmente uma representação de um tipo
de objecto; pense como uma estrutura que descreve o
objecto.
O bloco de construção básico de software OO – a fabrica dos
Objectos.
Uma classe define um “tipo de dados”. Em ciência da
computação, um tipo consiste de um conjunto de estados
possíveis (propriedades) e um conjunto de operações
(métodos) que realizam a transição entre os estados do tipo.
37. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Criação de classes
Ir ao gerênciador de Soluções-
> adicionar -> Classe
Exemplo Prático
As classes têm propriedades
(publicas ou privadas) e métodos.
"Property Get" para retornar um valor e o "Property Set"
para atribuir um valor à propriedade
38. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Reutilização de Objectos
A produtividade do
desenvolvimento de sistemas
orientados a objectos é visível e
bastante perceptível principalmente
quando fazemos uso da reutilização.
Esta, na prática da OO, é muito
mais do que simplesmente copiar
funções, ou mesmo utilizar
módulos.
39. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
A reutilização de objectos é, de facto, a utilização de
objectos já utilizados em sistemas anteriores em
novos projectos sem modificar as suas estruturas
internas, ou mesmo sem a necessidade de fazer
modificações no sistema para acomodar esses novos
códigos.
A reutilização de objectos já encapsulados pode somar
força quando vamos projectar um novo sistema de
informações. Podemos durante um novo projecto
identificar quais são os objectos necessários e incluir
esses objectos já implementados noutros projectos.
Se já estiverem implementados, estes podem ser
incluídos no novo sem a necessidade e custo de
implementação.
40. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Outra opção também pode ser a transformação de
objectos semelhantes, ou seja, objectos já
implementados cujas características são bastante
semelhantes aos objectos necessários, podem,
com pequenas modificações, serem úteis ao novo
sistema.
Outra forma de reutilização pode surgir
utilizando a propriedade da herança entre
objectos, ou seja, caso surja a necessidade de
criar um novo objecto cuja ideia esteja baseada
num objecto já existente, podemos criar novos
objectos com as características dos objectos já
desenvolvidos. Isto diminui sensivelmente o custo
de desenvolvimento de novos sistemas
42. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
5.Ficheiros
Leitura e Escrita de ficheiros
sequenciais
Ficheiros de Acesso Aleatório
43. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
O que é um Ficheiro?
Uma colecção de dados ou informação representada
por um nome, armazenados em dispositivos;
Existem vários tipos de ficheiros.
Basicamente dividem-se entre Ficheiros de Texto e os
Ficheiros de dados ou ficheiros definidos pelos
utilizadores;
44. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Ficheiros de Texto
Aqui a informação é totalmente armazenada em formato de
caracteres ASCII. Podem ser criados, consultados,
modificados no Sistema Operativo ou no editor de texto
fora do programa que os usa.
O acesso aos dados é do tipo sequencial ou seja, a
leitura dos dados não pode ser iniciado num ponto qualquer
escolhido pelo utilizador, mas sempre o início e percorrer
todos os elementos até chegar ao ponto pretendido.
45. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Ficheiros definidos pelo utilizador.
Estes agrupam dados simples ou estruturados, no formato
binário, não legíveis nem manipuláveis fora do programa
em que foram criados. São ficheiros de tipos definidos pelo
programador.
Podemos ter ficheiros de números inteiros ou reais,
matrizes, registos, etc....
Em particular, os ficheiros de registos permitem manipular
dados num formato bem estruturado para trabalho com
informação externa. O acesso aos dados pode ser feito de
forma aleatória ou seja por escolha da posição
pretendida (directa).
46. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Operações Principais no trabalho com ficheiros são:
Declaração de tipos e variáveis de ficheiros;
Associação de uma variável de ficheiro com o nome externo
de ficheiro;
Criação de novos ficheiros ou reescrita total de um ficheiro
já existente;
Escrita de informação num ficheiro;
Abertura de um ficheiro para leitura;
Procura de dados num ficheiro;
Fecho de um ficheiro aberto.
47. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Tipo de Dados – Estruturas
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 registo de itens num arquivo,
ou criar variáveis que servirão de padrão no
programa.
48. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Exemplo de uma estrutura:
Structure fichaAluno
<VBFixedString(30)> Dim nome As String
<VBFixedString(30)> Dim local As String
Dim ano As Integer
End Structure
49. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
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)
50. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Exemplo prático das operações básicas para acesso a
ficheiros em modo Sequencial e Aleatório:
1) Escolher o nome do ficheiro;
Exemplo: “c:teste.txt”
Nota: Inclusão do caminho ou “path” do ficheiro.
2) Escolher um número de referência;
1, 2, 3,… para referenciar o ficheiro
51. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
3) Abrir o ficheiro com “FileOpen” para escrita:
Membro Descrição
Append Abrir o ficheiro para acrescentar. Por defeito.
Input Abrir ficheiro para acesso de leitura.
Output Abrir ficheiro para acesso de gravação.
Binary Abrir ficheiro em modo binário.
Random Abrir ficheiro acesso aleatório.
52. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
4) Escrever no ficheiro – “FilePut”:
Nota: Numero de referência do ficheiro, nome da estrutura e
elementos membros da estrutura.
5) Ler do Ficheiro – “FileGet”
6) Fechar o ficheiro – “FileClose”
FileClose(1)
Número de referência da estrutura
53. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Notas a ter em conta
O FileOpen é só valido com o OpenMode – Binary
e Random.
No Visual Basic 2008 o FileOpen em Binary tem
alguns problemas na codificação em Binário
Recomenda-se sempre o uso do OpenMode em
Random (Ficheiros de Acesso Aleatório)
54. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
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.
Sintaxe para abertura de um ficheiro de acesso
aleatório:
55. FUNDAMENTOS AVANÇADOS DE
PROGRAMAÇÃO ORIENTADA POR
OBJECTOS
Exemplo prático Testes
Exercício de Aplicação – Ficheiro Turma
Com base no exemplo prático apresentado, realiza um
pequeno projecto em Visual Basic que grave num
ficheiro “turma.txt” os dados: nome, numero e nota.
Utiliza o acesso aleatório.
Chama a esse projecto - FicheiroTurma