Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C++: TXT filusta kaksiulotteiseen taulukkoon?

Sivun loppuun

Jyri [19.01.2005 21:23:00]

#

Eli miten saisin tehtyä ohjelman, joka lukee txt filusta tietoa kaksiulotteiseen taulukkoon? jos tiedostossa lukee vaikka:

###############
#             #
###############

niin taulukon alkio 0,0 olisi vasemman ylänurkan ruutu.
Niin ja kielenä oli C++

Blaze [19.01.2005 21:45:22]

#

Itse olen toteuttanut moiset kahdella sisäkkäisellä loopilla, joista ulommassa luetaan tiedostosta yksi rivi, ja sisemmässä käydään tämä rivi läpi ja tallennetaan arvot tauluun.

Jyri [20.01.2005 16:54:32]

#

Ahaa, nyt tajusin :) Kiitos.

Wukkopi [21.01.2005 10:26:56]

#

Minä itse taas kirjoitan periaatteella:

blocks (ruutujen määrä) esim. 2
0 (1. ruudun sijainti x-akselilla)
0 (1. ruudun sijainti y-akselilla)
1 (2. ruudun sijainti x-akselilla)
0 (2. ruudun sijainti y-akselilla)

Että noin eli yhdellä loopilla.

Metabolix [21.01.2005 18:40:12]

#

Minä taas teen yksiulotteisen taulukon, ja haen kohdan (X, Y) kaavalla (Y * Leveys + X), tai kiinnittelen 2D-taulukon osoittimet tähän yksiulotteiseen (TauluB[0] = TauluA, TauluB[1] = &TauluA[Leveys], TauluB[2] = &TauluA[2 * Leveys]). Ensimmäisellä keinolla en tarvitse looppia ollenkaan, kun tiedosto ei ole tekstinä vaan sopivina struktuureina (mikä on aika lailla välttämätöntä, jos peruspalaselle kertyy ominaisuuksia enemmän kuin yhteen tavuun (merkkiin) voi tunkea).

Konstit on monet.

Olli Vanhoja [22.01.2005 01:24:32]

#

Eikös olisi paljon helpompi taleentaa/avata binaarina?

Metabolix [22.01.2005 12:56:30]

#

Noin aloittelijalle taitaa olla helpompi muokata tasoa tekstieditorilla, ettei tarvitse väsätä omaa editoria, mutta kannattaa harkita vakavasti binäärivaihtoehtoa. Minä väänsin ensimmäisen tason peliini heksaeditorilla, ei se ihan kohtuuttoman hankalaa ollut. Tietenkin binääritiedoston ymmärtäminen ja tiedostomuodon kehittäminen on ihan asia erikseen (aloittelijalle), mutta siitä on lopulta hyötyä. Helpommalla pääsee vielä, kun tekee ohjelman, joka vain arpoo sopivasti eri palasia ja tallentaa tiedostoon, jos tason ei tarvitse olla arkkitehtuurillisesti korrekti, eli seinän ei tarvitse olla yhtenäinen. Pelin ominaisuuksia voi yleensä ihan hyvin testata, oli taso mikä tahansa.

sqwiik [22.01.2005 15:33:57]

#

#ifndef offtopic
# define offtopic

Minä puolestani luen rakenteet yleensä aina rakenteina (struct), ellei rakenne itsessään sisällä osoittimia varattuun muistiin. Tällöin sitten käytetään legendaarista muuttuja-kerrallaa-systeemiä.

# undef offtopic
#endif /* offtopic */

Takaisin pääaiheeseen: itse lukisin tiedoston merkki kerrallaan (fgetc) ja sijoittaisin samalla taulukkoon. Tällä tavoin selviäisi yhdellä silmukalla.

Metabolix [22.01.2005 18:02:25]

#

Tuon ongelmana voivat olla rivinvaihtomerkit, mutta toisaalta ne voi automaattisesti muuttaa seiniksi ladatessa...


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta