// ~destruktor
Ubytuj::~Ubytuj()
{
// ulozi do suboru
Save();
DeleteAll();
};
// ulozi zaznamy do suboru
void Ubytuj::Save()
{
FILE *f;
int len;
// zrusime podmienky
Find(-1,0,"");
f = fopen( UBYT_FILE, "wb" );
if( f==NULL )
Chyba("Nemozem ulozit do suboru");
// presun na zaciatok
if( MoveFirst())
// vsetko v poriadku ukladame data
do {
// ulozime staticke data
fwrite( zaz, sizeof(Zaznam)-4, 1, f );
// a teraz dynamicke, ulozime velkost pola + hodnotu
len = strlen( zaz->nazov )+1;
fwrite( &len, sizeof(len), 1, f );
fwrite( zaz->nazov, len, 1, f );
// a teraz dynamicke, ulozime velkost pola + hodnotu
len = strlen( zaz->lokalita )+1;
fwrite( &len, sizeof(len), 1, f );
fwrite( zaz->lokalita, len, 1, f );
}
// ideme na dalsi
while( MoveNext());
// zavrieme
fclose(f);
};
// ulozi zaznamy do suboru
void Ubytuj::Load()
{
FILE *f;
int len;
// mensie upratovanie
DeleteAll();
f = fopen( UBYT_FILE, "rb" );
// nieje subor tak nic
if( f==NULL )
return;
// vsetko v poriadku ukladame data
while( !feof(f))
{
// pridame
AddNew();
// precitame staticke data, okrem smernikov
if( fread( zaz, sizeof(Zaznam)-4, 1, f ))
{
// velkost dynamickeho pola
fread( &len, sizeof(len), 1, f );
fread( pom, len, 1, f );
Insert(1,pom);
// dynamicke pole
fread( &len, sizeof(len), 1, f );
fread( pom, len, 1, f );
Insert(2,pom);
// kde nic nieje ani smernik nebude
prvy = zaz = NULL;
pocet = akt = 0;
}
// vrati znamienko
char* Ubytuj::GetSign(char id)
{
switch(id)
{
case 1: return "=";
case 2: return "<";
case 3: return "<=";
case 4: return ">";
case 5: return "=>";
case 6: return "!=";
}
return "";
}
// compare string
int Ubytuj::CompareS(char* prvy, char* druhy, char sign)
{
int porov;