Manipulação de Arquivos de Dados 1. Comando open e close Abrir o arquivo para leitura de dados (input). O Arquivo será referenciado com o número 1. É possível abrir 511 arquivos Open arquivo$ For Input As #1 input #1, Close #1 Abrir o arquivo para gravação de dados (output). O Arquivo será referenciado com o número 3. Open arquivo$ For output As #3 print #3, Close #3 Abrir o arquivo para gravação de dados (Append) no modo de mergir. O Arquivo será referenciado com o número 5. Open arquivo$ For Append As #5 print #5, Close #5 2. Comando Shell – Roda um programa executável e retorna determinado valor RetVal = Shell("C:\WINDOWS\CALC.EXE", 1) ' Roda Calculadora. RetVal = Shell(“notepad c:\vcbcurso\dados\plano1.dat", 1) ' Abre o notepad
3. Comando For ...Next Sejam nc = número de colunas nl = número de linhas Sintaxe Laço simples For i = 1 to nl sentenças Next i 2) Laço duplo For i=1 to nl For j = 1 to nc Next j 3) Incrementos For i = 1 to nl step 2 next i For i = nt to 1 step -3 Next i Observações: Veja o uso do ponto, da vírgula e da tabulação
Aplicação – Projeto16 Private Sub Command1_Click() arquivo$ = "c:\vbcurso\dados\laço.txt" Open arquivo$ For Output As #3 For i = 1 To 10 Print #3, i Next i Close #3 resposta$ = Shell("notepad " + arquivo$, 1) End Sub
Private Sub Command2_Click() arquivo$ = "c:\vbcurso\dados\laço.txt" Open arquivo$ For Output As #3 For i = 1 To 10 For j = 1 To 5 Print #3, 10 * i + j; Rem Print #3, 10 * i + j, Rem Print #3, Tab(10 * (j - 1)); 10 * i + j; Next j Print #3, Next i Close #3 resposta$ = Shell("notepad " + arquivo$, 1) End Sub
Private Sub Command3_Click() arquivo$ = "c:\vbcurso\dados\laço.txt" Open arquivo$ For Output As #3 For i = 0 To 20 Step 2 Print #3, i Next i Close #3 resposta$ = Shell("notepad " + arquivo$, 1) End Sub Private Sub Command4_Click() arquivo$ = "c:\vbcurso\dados\laço.txt" Open arquivo$ For Output As #3 For i = 80 To 20 Step -2 Print #3, i Next i Close #3 resposta$ = Shell("notepad " + arquivo$, 1) End Sub
4. Leitura de Arquivos de dados 4.1 Usando comandos For ...Next Private Sub Command1_Click() arquivo$ = "c:\vbcurso\dados\plano1med.dat" Open arquivo$ For Input As #1 nl = 10 nc = 5 For i = 1 To nl For j = 1 To nc Input #1, x If i = 8 And j = 4 Then Label2.Caption = x Next j Next i Close #1 End Sub
Comando Do....Loop Executa um bloco de instrução enquanto uma sentença é verdadeira ou até que deteminada sentença seja verdadeira Exemplo 1 Do While Conta < 10 Sentenças Loop Exemplo 2 Do Loop until conta = 10 Exemplo 3 Do While not eof(1) Sintaxes Do [{While | Until} condição] [sentenças] [Exit Do] Loop Do Loop [{While | Until} condição]
4.2 Usando comando Do while ...Loop Private Sub Command2_Click() arquivo$ = "c:\vbcurso\dados\plano1med.dat" Open arquivo$ For Input As #1 nc = 5 conta = 0 Do While Not EOF(1) conta = conta + 1 For j = 1 To nc Input #1, x If conta = 8 And j = 4 Then Label2.Caption = x Next j Loop Close #1 End Sub
4.3 Usando vetores Private Sub Command3_Click() arquivo$ = "c:\vbcurso\dados\plano1med.dat" Open arquivo$ For Input As #1 nc = 5 ReDim vetor(nc) conta = 0 Do While Not EOF(1) conta = conta + 1 For j = 1 To nc Input #1, vetor(j) Next j If conta = 8 Then Label2.Caption = vetor(4) Loop Close #1 End Sub
4.4 Usando matrizes Comandos Dim e redim Usado em um procedimento para alocar espaço dentro de uma memória dinâmica. Sintaxe Dim x(10), y(10,4) Redim x(nl), matriz(nl,nc) 4.4 Usando matrizes Private Sub Form_Load() arquivo$ = "c:\vbcurso\dados\plano1med.dat" Open arquivo$ For Input As #1 nc = 5 nl = 10 ReDim matriz(nl, nc) conta = 0 Do While Not EOF(1) conta = conta + 1 For j = 1 To nc Input #1, matriz(conta, j) Next j Loop Close #1 Label2.Caption = matriz(8, 4) End Sub
Comandos Gerais If....Else...End if For ... Next Do ... Loop Open ... Close Goto Go sub Select case If …else ..end if Executa um grupo de sentenças dependendo do vo valor de uma expressão Sintaxe If conditição Then [sentenças] [Else sentenças ou If condição Then [sentenças] [ElseIf condição Then [sentenças] ... [Else [sentenças]] End If
Repete um grupo de sentenças durante um número especificado de vezes. For …Next Repete um grupo de sentenças durante um número especificado de vezes. Sintaxe For contador = início To fim [Step passo] [sentença] [Exit For] Next [contador] Do …Loop Repete um bloco de sentenças enquanto uma condição é verdadeira ou até que esta condição seja verdadeira. Sintaxe Do [{While | Until} condição] [sentença] [Exit Do] Loop Outra alternativa é: Do Loop [{While | Until} condição]
Open …Close Capacita a entrada e saída de dados em arquivos Sintaxe Open arquivo$ for input as #1 Input #1, variáveis Close #1 Open arquivo$ for output as #3 Print #3, variáveis Goto Provoca um desvio incondicional para uma linha (label) específico dentro de um procedimento. Sintaxe GoTo linha (ou label)
If Número = 1 Then GoTo Linha1 Else GoTo Linha2 Line1: A$ = "Número é igual a 1" GoTo Ultimalinha Line2: A$ = "Número diferente de 1" Ultimalinha: exit sub Gosub …Return Provoca um desvio incondicional para uma linha (label) específica dentro de um procedimento. Após executada, retorna-se ao ponto original Sintaxe Gosub linha (ou label) Linha: Sentenças Return
Aplicação – Projeto 18 Private Sub Form_Load() Combo1.Clear For i = 1 To 10 Combo1.AddItem i Next i End Sub Private Sub Command1_Click() a$ = Combo1.Text valor = Val(a$) If valor / 2 - Int(valor / 2) = 0 Then Label1.Caption = "Par" Else Label1.Caption = "Ímpar" End If End Sub
Aplicação – Projeto 18 Private Sub Command2_Click() a$ = Combo1.Text valor = Val(a$) For i = 0 To 10 Step 2 If valor = i Then Label1.Caption = "Par" Next i For i = 1 To 10 Step 2 If valor = i Then Label1.Caption = "Ímpar" End Sub Private Sub Command3_Click() a$ = Combo1.Text valor = Val(a$) n = 0 Do While n <= 10 n = n + 2 If valor = n Then Label1.Caption = "Par" Loop n = 1 If valor = n Then Label1.Caption = "Ímpar" End Sub
Aplicação – Projeto 18 Private Sub Command4_Click() a$ = Combo1.Text valor = Val(a$) If valor / 2 - Int(valor / 2) = 0 Then GoTo par Else GoTo impar par: Label1.Caption = "Par" Exit Sub impar: Label1.Caption = "Ímpar" End Sub Aplicação – Projeto 18 Private Sub Command6_Click() a$ = Combo1.Text valor = Val(a$) GoSub numero Label1.Caption = resposta$ Exit Sub numero: If valor / 2 - Int(valor / 2) = 0 Then resposta$ = "Par" Else resposta$ = "Ímpar" End If Return End Sub
Aplicação – Projeto 18 Private Sub Command5_Click() a$ = Combo1.Text valor = Val(a$) Select Case valor Case 1, 3, 5, 7, 9 resposta$ = "Ímpar" Case 2, 4, 6, 8, 10 resposta$ = "Par" End Select Label1.Caption = resposta$ End Sub