|
Klasa TMemoryStream
Wyżej wymieniona klasa służy do przechowywania danych w dynamicznej pamięci RAM.
Hierarchia klasowa
TObject | TStream | TCustomMemoryStream | TMemoryStream
Dostępne są następujące metody do obsługi tej klasy:
Clear - czyszczenie strumienia pamięci LoadFromFile LoadFromStream SetSize - określenie rozmiaru strumienia. Write - zapis do pamięci
oraz metody wywodzące się z klasy TCustomMemoryStream
Read - odczyt z pamięci SaveToFile SaveToStream Seek - ustawienie wskaźnika strumienia
Określenie rozmiaru strumienia jest bardzo ważne, gdyż pomaga zapobiegać procesom tzw. wycieku pamięci. Strumień pamięci należy obsługiwać tak samo jak pliki korzystając z klasy TFileStream. Pamiętać należy, aby w czasie zamykania aplikacji zwolnić jej zasoby.
Przykład
Napisany program będzie zapisywał zmienną char do strumienia pamięci oraz czytał z niego. Co będzie potrzebne? Na formę kładziemy dwa Buttony oraz Label'a.
W nagłówku pliku cpp deklarujemy strumień pamięci #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; TMemoryStream *str = new TMemoryStream; |
Funkcje obsługi zdarzeń dla przycisku 1 (zapis) i 2 (odczyt) void __fastcall TForm1::Button1Click(TObject *Sender) { char message[100] = "Programowanie w C++ Builder"; str->SetSize(100); str->Clear(); str->Seek(0, soFromBeginning); str->Write(&message, sizeof(message) ); }
|
void __fastcall TForm1::Button2Click(TObject *Sender) { char tmp[100]; str->Seek(0, soFromBeginning); str->Read(&tmp,sizeof(tmp) ); Label1->Caption = (String)tmp; } |
oraz zwalnianie zasobów void __fastcall TForm1::FormClose(TObject *Sender, TCloseAction &Action) { delete str; }
|
|
|
Zmieniony ( 16.06.2007. )
|
|
Odsłony: 3343
|