Localize file www.TrSek.com/c/cestovka/rezerv.cpp/* ========================================================================== */
/* */
/* Rezerv.cpp Copyright (c) TrSek alias Zdeno Sekerak */
/* Datum:20.05.2005 http://www.trsek.com */
/* */
/* Description */
/* Tato trieda sa stara o rezervaciu ubytovni. Umoznuje si vybrat ubytovne */
/* podla podmienok ako je cena a pocet volnych lozok. Vsetko si uklada do */
/* suboru rezerv.dat. */
/* Vsetko je prezentovane v obojsmernom spojkovom zozname. */
/* ========================================================================== */
// ulozi zaznamy do suboru
void Rezerv::Save()
{
FILE *f;
int len;
// zrusime podmienky
Find(-1,0,"");
f = fopen( REZV_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(Rezervacia)-4, 1, f );
// a teraz dynamicke, ulozime velkost pola + hodnotu
len = strlen( zaz->meno )+1;
fwrite( &len, sizeof(len), 1, f );
fwrite( zaz->meno, len, 1, f );
}
// ideme na dalsi
while( MoveNext());
// zavrieme
fclose(f);
}
// ulozi zaznamy do suboru
void Rezerv::Load()
{
FILE *f;
int len;
// mensie upratovanie
DeleteAll();
f = fopen( REZV_FILE, "rb" );
// nieje subor tak nic
if( f==NULL )
return;
// vsetko v poriadku ukladame data
while( !feof(f))
{
// pridame
AddNew();
// precitame staticke data
if( fread( zaz, sizeof(Rezervacia)-4, 1, f ))
{
// dynamicke pole
fread( &len, sizeof(len), 1, f );
fread( pom, len, 1, f );
Insert(1,pom);
// kde nic nieje ani smernik nebude
prvy = zaz = NULL;
pocet = akt = 0;
}
// vrati znamienko
char* Rezerv::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 Rezerv::CompareS(char* prvy, char* druhy, char sign)
{
int porov;