Seuraava on hahmotelma siitä, miten cJasen voisi alustaa avaimensa. Jos on käytössä "viisaat kenttä- luokat", niin silloin tietenkin kukin kenttä itse osaa muuttua avaimeksi.
/****************************************************************************/ void cJasen::tee_avain(int kentan_nro) { avain = kentta(kentan_nro).getAvain(); }
"Tyhmästä versio" voisi olla seuraavan näköinen:
/****************************************************************************/ void cJasen::tee_avain(int kentan_nro) { char s[20]; string st; int i; double d; switch (kentan_nro) { case 1: case 3: case 5: // yms. merkkijonot avain = kentta_jonoksi(kentan_nro); poista_tyhjat(avain); for (i=avain.length(); i++) avain[i] = JARJESTYS.Avainarvo(avain[i]); poista_tyhjat(avain); return; case 2: // hetukenttä st = hetu + " "; avain = st; avain[0] = st[4]; /* Vaihdetaan pv ja vuosi keskenään! */ avain[1] = st[5]; avain[4] = st[0]; avain[5] = st[1]; return; case 9: // kokonaislukukentät i = liittymisvuosi; sprintf(s,"%+05d",i); avain = s; if ( avain[0] == '- ' ) avain[0]='+'- 1; /* jotta - < + */ return; case 10: case 11: // yms. desimaalikentät d = kentta_doubleksi(kentan_nro); // Tätä ei ole, mutta tehtäisiin. sprintf(s,"%+015.7lf",d); avain = s; if ( avain[0] == '- ' ) avain[0]='+'- 1; /* jotta - < + */ return; default: avain = ""; return; } }