Classe TBufferMemory
Unit
mi.rtl.objects.methods.StreamBase.Stream.MemoryStream.BufferMemory
Declaração
type TBufferMemory = class(TMemoryStream)
Descrição
A class
TBufferMemory
cria um array of record em memória usando os métodos os seek, PutREc, GetRecNOTA
Uso a classe
TBufferMemory
para criar arquivos em memória no banco de dados Tb_Access.pas
EXEMPLO
Exemplo de como gravar um registro sem header em memória.
Procedure TMi_Rtl_Tests.Test_TBufferMemory_sem_header; type TAluno = record Id : integer; nome : string[35]; end; var FileMemory_Alunos : TObjectss.TBufferMemory; Aluno : TAluno; nr : longint; n : longint; begin with TObjectss do try FileMemory_Alunos := TObjectss.TBufferMemory.Create(sizeof(aluno)); with aluno,FileMemory_Alunos do begin if status = StOk then begin n := 1; Id:= n; nome:= 'Paulo Sérgio'; PutRec(id,aluno); end; if status = StOk then begin inc(n); Id:= n; nome:= 'George Bruno'; PutRec(id,aluno); end; if status = StOk then begin for nr := 1 to n do begin GetRec(nr,aluno); if status = StOk then SysMessageBox('Nr ='+intToStr(nr)+ '; id ='+intToStr(Aluno.id)+ '; Aluno ='+Aluno.nome ,'Test_FileStream_sem_header',false) else break; end; end; end; finally FileMemory_Alunos.Destroy; end; end;
Exemplo de como gravar um registro com header em memória.
Procedure Test_TBufferMemory_com_header; type TAluno = record Id : integer; nome : string[35]; end; type THeadAlunos = record TotalDeAlunos:longint; end; var TBufferMemory_Alunos : TObjectss.TBufferMemory; HeadAlunos : THeadAlunos; Aluno : TAluno; nr : longint; n : longint; begin with TObjectss do try TBufferMemory_Alunos := TBufferMemory.Create(sizeof(HeadAlunos),sizeof(aluno)); with aluno,TBufferMemory_Alunos do if status = StOk then begin HeadAlunos.TotalDeAlunos:= 0; PutRecBase(HeadAlunos); // Grava o header if status = StOk then begin inc(HeadAlunos.TotalDeAlunos); Id:= HeadAlunos.TotalDeAlunos; nome:= 'Paulo Sérgio da Silva Pacheco'; PutRec(id,aluno); if status = StOk then PutRecBase(HeadAlunos); // Grava o header end; if status = StOk then begin inc(HeadAlunos.TotalDeAlunos); Id:= HeadAlunos.TotalDeAlunos; nome:= 'George Bruno Melo Pacheco'; PutRec(id,aluno); if status = StOk then PutRecBase(HeadAlunos); // Grava o header end; if status = StOk then begin GetRecBase(n); if status = StOk then begin //Imprime o número de elemntos adicionado ao stream SysMessageBox('Número de registros: '+intToStr(n) , 'Test_FileStream_sem_header',false); // Ler e imprime os registros. for nr := 1 to n do begin GetRec(nr,aluno); if status = StOk then SysMessageBox('Nr ='+intToStr(nr)+ '; id ='+intToStr(Aluno.id)+ '; Aluno ='+Aluno.nome , 'Test_FileStream_sem_header',false) else Break; end; if status <> StOk then SysMessageBox(errorMessage(errorInfo) , 'Test_FileStream_sem_header',false) end; end; if status <> StOk then SysMessageBox(errorMessage(errorInfo) , 'Test_FileStream_sem_header',false) end; finally TBufferMemory_Alunos.Destroy; end; end;
Hierarquia
- TObjectsTypes
- TObjectsConsts
- TObjectsMethods
- TStreamBase
- TStream
- TMemoryStream
- TBufferMemory
Visão Geral
Métodos
![]() |
CONSTRUCTOR Create(a_BaseSize,a_RecSize:Longint); overload; override; |
![]() |
CONSTRUCTOR Create(a_RecSize:Longint); overload; virtual; |
![]() |
PROCEDURE Seek(NR: LongInt); Overload; override; |
![]() |
PROCEDURE Error(Code, Info: Integer); Override; |
Descrição
Métodos
![]() |
CONSTRUCTOR Create(a_RecSize:Longint); overload; virtual; |
|
![]() |
PROCEDURE Seek(NR: LongInt); Overload; override; |
![]() |
PROCEDURE Error(Code, Info: Integer); Override; |
Gerado por PasDoc 0.16.0.