Apuja tiedoston lukemiseen ja oikean tiedon löytämiseen

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?
7648
Äänestä

Muut lukivat myös

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.

Äänestä

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?

Äänestä
  • 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ä?

    Äänestä

  • 34634 kirjoitti:

    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..

    Äänestä

  • -jacob- kirjoitti:

    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

    Äänestä

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.

Äänestä

Kommentoi aloitusta


fsdff kirjoitti:

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?

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu