
Objetivo e utilização:
Esta função lê um item memo de um Banco de Dados para um buffer.
Sintaxe:
PegaMemo (char *arq, char *item, char *area, long tam, long *lid, long ofe)
Parâmetros:
Deve-se informar:
O parâmetro offset (ofe) representa a posição inicial para iniciar a leitura de um item memo (item). O item será lido passo a passo de acordo com um loop e a cada passo o offset deve ser incrementado do tamanho lido (lid). Finalmente a função retorna o parâmetro do buffer (area) e seu tamanho (tam).
Exemplos:
Exemplo em VB:
Sub list_depart_DblClick ( )
If Len(Dir("c:\dlls\temp.txt")) <> 0 Then
Kill "c:\dlls\temp.txt"
End If
If Len(Dir("c:\dlls\temp.bmp")) <> 0 Then
Kill "c:\dlls\temp.bmp"
End If
Dim buffer As String * 6
ReDim items(2) As itens
‘localiza no registro
items(0).item = "dept_code"
items(1).item = ""
aa = ObtemRegistrosNoArquivo("dept")
result = ReiniciaSequencial("dept")
For i = 1 To aa
result = LeProximoSequencial("dept", items(0), buffer)
If Mid(buffer, 1, 6) = Mid(list_depart.List (list_depart.ListIndex), 1, 6) Then
Exit For
End If
Next i
frm_edit1.MousePointer = 11
‘le descricao do departamento de um arquivo do Banco de Dados
Dim input_buffer1 As String * 1024
Dim read_size As Long
read_size = 0
offset = 0
Open "c:\dlls\temp.txt" For Binary Access Write As #1
Do While 1
result = PegaMemo("dept", "dept_desc", input_buffer1, Len(input_buffer1), read_size, offset)
If read_size <> 0 Then
Put #1, , input_buffer1
Else
Exit Do
End If
offset = offset + read_size
Loop
Close #1
Dim tempchar As String * 1000
edit_desp.Text = Space(0)
Open "c:\dlls\temp.txt" For Binary Access Read As #1
Do While Not EOF(1)
Get #1, , tempchar
edit_desp.Text = edit_desp.Text + tempchar
Loop
Close #1
‘lê musica do departamento de um arquivo do banco
read_size = 0
offset = 0
Open "c:\dlls\temp.bmp" For Binary Access Write As #1
Do While 1
result = PegaMemo("dept", "dept_music", global_buffer, Len(global_buffer), read_size, offset)
If read_size <> 0 Then
Put #1, , global_buffer
Else
Exit Do
End If
offset = offset + read_size
Loop
Close #1
If FileLen("c:\dlls\temp.bmp") <> 0 Then
image_music.Picture = LoadPicture("c:\dlls\temp.bmp")
Else
image_music.Picture = LoadPicture()
End If
frm_edit1.MousePointer = 0
End Sub
