Eli binaaritiedosto sisältää käyttäjän antamia tietoja:
auton_merkki, auton_malli, auton_rektunnus, auton_vari
Nyt pitäisi hakea tiedostosta vain auton_merkkia...eli ohjelman kayttaja haluaa hakea auton_merkki -tiedon mukaan. Sovellus ilmoittaa että löytyi ja tulostaa sitten auton_malli, auton_rektunnus, auton_vari-tiedot.
Miten tuollainen toteutetaan? Ihan vaan pseudokoodina vaikkapa aluksi...
Osaan lukea tiedostoa...pitääkö lukea niin että aina luetaan kaikkki tiedot ei voi hyppiä vain auton_merkki -tidosta toiseen?
auton_merkki, auton_malli, auton_rektunnus, auton_vari
Nyt pitäisi hakea tiedostosta vain auton_merkkia...eli ohjelman kayttaja haluaa hakea auton_merkki -tiedon mukaan. Sovellus ilmoittaa että löytyi ja tulostaa sitten auton_malli, auton_rektunnus, auton_vari-tiedot.
Miten tuollainen toteutetaan? Ihan vaan pseudokoodina vaikkapa aluksi...
Osaan lukea tiedostoa...pitääkö lukea niin että aina luetaan kaikkki tiedot ei voi hyppiä vain auton_merkki -tidosta toiseen?
Vastaukset 7
Vanhimmat
kotelon ulkonäön suhteen kuin sinä, sillä suunnistan hankintani
tavaratalojen muovilaatikkosastoille.
Ruoan säilytyslaatikoissa ovat useimmat viritelmäni.
Uusimmat ihan hyötykäytössä olevat vamistuslevyni ovat
Tupperwaren voileipälaatikoissa. Sopivat tehtävään
kuin nakutettu.
Ensiksikin, miksi binääritiedosto? Eikö tekstitiedosto olisi joustavampi? Ja lisäksi se homma, että eikö fiksumpaa olisi pistää joku tietokantamoottori kiinni ja SQL lauseilla hallita niitä tietoja?
kyseessä siis ihan c ohjelmoinnin peruskurssin juttuja...
Binääritiedostoa neuvottu..kehoitettu käyttämään....en tiedä sitten miksi. Ei kai sillä mitään merkitystä...voin kai kuitnkin käyttä strcmp:tä?
Pitäisi tietää miten ne tiedot sinne binääritiedostoon on tallennettu, jotta ne tiedot osataan sieltä onkia. Esim. onko tekstin lisäksi lukuja jos on niin minkätyyppisiä, onko tekstit tietynmittaisia merkkijonoja vai vaihtelevanpituisia jollain merkillä erotettuja..
kaikki stringejä. ei mitään erottelumerkkejä.
tallennus menee niin että käyttäjältä on kysytty noit asioita (auto-luokka) ja sitten tallennetaan tiedostoon ofstream ja tiedKirj.write( (char*) &autot[i].auton_merkki, sizeof(auton_merkki,) );
kaikille muuttujille (tietojäsenille) sama homma
Onko tietoja paljon (yli 10000) vai selvästi vähemmän? Mikäli tietoja on vain vähän voit vaikka huoletta lukea kaikki ensin johonkin tietorakenteeseen (lista, vektori, pino, jono). Tietorakenteesta haet sitten sopivan alkion sopivalla ehdolla. Luokkaan kannattaa tehdä vertailuoperaattori, jotta algoritmit toimivat oikein. strcmp ei varmaankaan ole kauhean oleellinen, koska c :a on kyse? std::string tukee suoraan == operaattoria.
Tuo esimerkki on suoraan tuolta, se on c raamattu:
http://www.amazon.com/C-Programming-Language-Special/dp/0201700735
on käännetty myös suomeksi