Lopulta jäsenistö on taas se joka joutuu hommiin:
string cJasenet::luo(const string &tied,const string &nimi,int max_koko)
{
IF_ERR_RETURN(luo_taulukko(max_koko));
tiedoston_nimi = tied;
koko_nimi = nimi;
muutettu = 1;
return "";
}
...
string cJasenet::lue_tiedostosta(const string &tied)
{
ifstream f(tied.c_str());
if ( !f ) return TIED_EI_AUKEA;
string nimi; lue_rivi(f,nimi); if ( !f ) return EI_NIMEA;
int max_koko; lue_rivi(f,max_koko); if ( !f ) return EI_MAXKOKOA;
IF_ERR_RETURN(luo_taulukko(max_koko));
tiedoston_nimi = tied;
koko_nimi = nimi;
string rivi;
cJasen uusi;
while ( getline(f,rivi) ) {
if ( rivi == "" || rivi[0] == ';' ) continue;
uusi.setAsString(rivi);
// f >> uusi; // vaatisi kunkin rivin olemisen täydellisenä, muuten OK!
IF_ERR_RETURN(lisaa(uusi));
}
muutettu = 0;
return "";
}