TMemoryStream PDF Drukuj Email
Wpisał doctor   
Poniedziałek, 29. Styczeń 2007 11:50
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;
}

 

Komentarze
Dodaj nowy Szukaj
Napisz komentarz
Nick:
E-mail:
 
Strona www:
Tytuł:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0:confused::cheer:B):evil::silly::dry::lol::kiss::D:pinch:
:(:shock::X:side::):P:unsure::woohoo::huh::whistle:;):s
:!::?::idea::arrow:
 
Proszę wpisać kod antyspamowy widoczny na obrazku.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

LAST_UPDATED2
 
 

Losowy obraz

b7.jpg

Gościmy

Naszą witrynę przegląda teraz 12 gości 




Gry dla dzieci | Opony | ubieranki | Gry Online | siatki