Friday 11 February 2011

Ei tykkää, ei

Kirjoitin "virallisen" MEMAP-formaattispeksin ja loin mallitiedoston speksin pohjalta. Seuraavaksi piti luonnollisesti kirjoittaa laturi tälle tiedostolle.

C++:n standarditiedostokirjasto kuuluu pakko-tietää tason yleissivistykseen... ainakin tekstitiedostojen luvun ja kirjoituksen suhteen. Binääritiedostojen käsittelyä en laskenut siihen kastiin ennen tätä projektia. Nyt se piti kuitenkin opetella, koska mallitiedosto ja speksit olivat binääritiedosto-ajatuksen pohjalla.

Joka tapauksessa, tutustuin fstreamin read-metodiin. Teoriassa äärimmäisen helppo tapa napata tiedoston sisältö muistiin lukuina - käytäntö on aina tarua ihmeellisempää. Kasasin tuon latausfunktion luokan sisään MERPG-projuun, en lisännyt minkäänlaista kutsua koko luokkaan, käänsin ja ajoin. Ohjelma käynnistyi ja piirsi ruudulle mitä odotin, joten suljin ohjelman -> BÄNG! MEMAP.exe lakkasi toimimasta.

Väänsin ja käänsin koodia, kirjoitin sen uudestaan C:n tiedostofunktioin, ja silti se ei toiminut. Tuossa on uskoakseni jossain pieni bad pointer tai puskurinylitysbugi. Kun ehdin, voisin yrittää samaa toteutusta skriptitiedostona, koska C++:n virtaoperaattorit, joita käytetään tekstin lukemiseen, eivät pelaa vaarallisesti osoittimilla. Saa nähdä.

No comments:

Post a Comment