previous next Up Title Contents Index

Tietueen lisäys tiedostoon

Tietue voidaan lisätä tiedoston loppuun tai johonkin mielivaltaiseen kohtaan.

Loppuun lisääminen on helppoa, koska tiedosto voidaan avata lisäystilaan "a"-parametrilla fopen()-funktion kutsussa.

Mikäli tietue halutaan lisätä tiedoston keskelle, joudutaan toimimaan toisin.

Tällöin käytetään kahta tiedostoa: vanhaa ja uutta. Vanha tiedosto on tässä se, johon lisätään, ja uusi se, johon lisäys on tehty.

Ideana on, että

jokainen vanhan tiedoston tietue luetaan vuorollaan muistiin.
Ohjelmassa tutkitaan jokaisen lukemisen jälkeen, pitääkö uusi lisättävä tietue kirjoittaa uuteen tiedostoon ennen juuri luettua vanhan tiedoston tietuetta.
Jos pitää, niin se kirjoitetaan, minkä jälkeen kaikki vanhan tiedoston tietueet kirjoitetaan peräkkäin uuteen tiedostoon.

Tietueen lisäämistä vanhojen tietueiden keskelle uudessa tiedostossa havainnollistetaan alla näkyvässä kuvassa (ks. myös animaatio):

 

wpe5.jpg (6548 bytes)

Uusi tietue kirjoitetaan uuteen tiedostoon järjestyksessä olevien tietueiden väliin oikeaan kohtaan (nuoli kuvaa tietueen kirjoittamista tiedostosta toiseen)
Lopuksi vanha tiedosto tuhotaan ja uudelle tiedostolle annetaan vanhan tiedoston nimi.   C:n standardikirjasto tarjoaa tätä varten funktiot remove() ja rename().

previous next Up Title Contents Index