Kun tekee bas tiedostosta exen ja käyttää open käskyä tiedostoon kirjoittamiseen. tiedostoonhan kirjoitetaan basic kieltä. Ja sitten suoritan ohjelmalla tiedoston joka on tehty OPENilla. Mutta sitten on ongelma. Eihän exe tunnista basic kieltä. mitä pitäisi tehdä?
Hakea kääntäjä.
EDIT: nopea vastailua :)
Mähän KÄÄNSIN koko sorsan jo exeksi mutta kun exetiedosto tekee basic kielisen tiedoston joka pitäisi avata samaisella exetiedostolla. Voisko joku auttaa?!?
Haluaisit siis suorittaa ohjelman ajon aikana luotua Basic-koodia? Ei onnistu, koska käännetty ohjelma ei pidä sisällään Basic-tulkkia.
No siis. On tiedosto1 joka luo tiedoston2. Sen jälkeen tiedostolla1 avataan tiedosto2. (Nämä on tehty QB:llä)
Sitten kun käännän tiedoston1 exeksi. tiedoston2 luku ei enää onnistu. Joten miten tämä pitäisi tehdä, jotta saan tiedoston2 tiedot näkymään tiedostossa1?
Ja vuoden huonoimman selittäjän palkinto menee... rndprogylle! Siis eihän tuosta ota erkkikään selvää. Minäkin sain saman käsityksen kuin A. Laaksonen, eli että haluaisit ajaa EXEstä BASIC-koodia, ja tämähän ei onnistu ellet väsää omaa QBasic-tulkkia (ei erityisen helppoa).
En halua kylläkään lukea basic koodia exe tiedostolla. Lienee paras sanoa että yritän tehdä top ten listaa. se tiedosto johon top tennit tallennetaan pitäisi saada näkymään.
Sinä varmaankin tarkoitat että miten luetaan teksti tiedostosta tekstiä. (ymmärtääkseni)
open toptentiedosto for input as #1 'avataan tiedosto do util eof(1) 'laitetaan looppiin kunnes tiedosto on loppu input #1, rivi 'luetaan rivi print rivi 'tulostetaan rivi loop close #1 'suljetaan tiedosto
En kyllä keksi mitä muuta sinä tuolla selitykselläsi tarkoitat.
edit: hitsi ajattelin että puhutaan vb:stä...
tarkemmin ajateltuna bas liittyy qb:hen
Miten ylipäätään tehdään toptenni (niin että se toimii myös exenä)
??? Minä en nyt oikeen ymmärrä...
Tee siis silleen, että kun pelaaja tekee uuden ennätyksen, peli kysyy pelaajan nimen ja sitten tallettaa sen tiedostoon pisteiden kanssa. Kun pelaaja haluaa katsella pisteitä, peli avaa ennätys tiedoston ja printtaa tekstit.
Oho! Ratkaisu tais olla liian yksinkertainen. Paitsi että kuka tahansa (sinäkin) voisit muokata sitä.
lainaus:
Oho! Ratkaisu tais olla liian yksinkertainen. Paitsi että kuka tahansa (sinäkin) voisit muokata sitä.
no ehkä sinä sitten koodaat sen tekstin vaikka niin että merkit vaihtavat paikkojaan. esim a = t, r = 3, p = w, jne :D
tuskin tuokaan mitään estää, mutta kuka haluaa muokata ennätystilastojaan??
lainaus:
kuka haluaa muokata ennätystilastojaan??
Kuka vaan joka ei muuten pärjää
lainaus:
lainaus:
kuka haluaa muokata ennätystilastojaan??
Kuka vaan joka ei muuten pärjää
Kaikki ihmiset eivät ole välttämättä niin säälittäviä, että huijaisi itsensä hyväksi pelaajaksi sen takia ettei osaa vielä pelata :P
lainaus:
lainaus:
lainaus:
kuka haluaa muokata ennätystilastojaan??
Kuka vaan joka ei muuten pärjää
Kaikki ihmiset eivät ole välttämättä niin säälittäviä, että huijaisi itsensä hyväksi pelaajaksi sen takia ettei osaa vielä pelata :P
Samaa mieltä... pelaamisesta menee tolla tavalla idea kokonaan.
Kai sitten tyydyn helpoimpaan ratkaisuun eli top lista tekstitiedostoon. Onhan BEER WORMissakin niin.
Käytä puttia ja gettiä niin ainakin skoret saa kryptattua... mä käytän ainakin.
Voihan ne pisteet kryptata kivoilla kerto, summaus ja mm. xor-operaatiolla vaikka ne tallentaisikin ASCII-muodossa. Tai sitten voi laskea kaikkien pisteiden ja nimien perusteella tarkistussumman, jonka sitten tarkastaa kun listaa luetaan (eli lasketaan ladatusta listasta tarkistussumma, sen tulisi täsmätä tallennettuun tarkistussummaan).
No nyt kun ne on teksti tiedostossa niin mä en enää osaakkaan laittaa niit suuruus järjestykseen.
Varaa muuttujat ja lue tiedoston data siihen, ja sitten lajittele korkeimmasta pienimpään ja tulosta vasta sitten.
Jos ei vieläkään valkene, heitän koodilla...
No, heitäpä sitä koodia niin näen ymmärsinkö oikein.
Pitkä huokaus... Koeta ymmärtää tästä perusidea ja kehittää sitten.
'Luodaan tiedosto... 3 nimeä, näin aluksi Open "topten.txt" For Output As #1 Print #1, "Jaakko", 24 Print #1, "Erkki2", 15 Print #1, "Iisakki", 11 For a = 4 To 10 'Loput tyhjiä Print #1, " ", 0 Next Close #1 ... ...'Itse latauskoodi... Dim nimet(1 To 10) As String * 15, pisteet(1 To 10) As Integer Dim a, b, c As Integer a = 0 : b = 0 Open "topten.txt" For Input As #1 For b = 1 To 10 Input #1, nimet(b), pisteet(b) Next b Close #1 'Järjestellään c = 0 Dim valistr As String * 15 For a = 1 To 10 For b = a To 10 If pisteet(b) > pisteet(a) Then c = pisteet(b) : pisteet(b) = pisteet(a) : pisteet(a) = c valistr = nimet(b) : nimet(b) = nimet(a) : nimet(a) = valistr End If Next b Next a 'Tulostetaan lista For b = 1 To 10 Print nimet(b), pisteet(b) Next
Ja jos haluat liittää uuden tuloksen listaan, niin käy läpi kaikki pisteet ja katso minne se kuuluu... Sitten vain siirrät listan kaikkia alempia tietoja alaspäin ja tuhoat alimman. Kun muutokset on tehty, tallennetaan taas tiedot vaikka for-silmukalla.
Aihe on jo aika vanha, joten et voi enää vastata siihen.