Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6, VBA: exellä bas tiedoston lukeminen

Sivun loppuun

rndprogy [09.12.2003 19:27:41]

#

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ä?

ZcMander [09.12.2003 19:35:01]

#

Hakea kääntäjä.

EDIT: nopea vastailua :)

rndprogy [09.12.2003 19:45:37]

#

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?!?

Antti Laaksonen [09.12.2003 19:52:21]

#

Haluaisit siis suorittaa ohjelman ajon aikana luotua Basic-koodia? Ei onnistu, koska käännetty ohjelma ei pidä sisällään Basic-tulkkia.

rndprogy [09.12.2003 20:04:54]

#

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?

thefox [09.12.2003 20:50:28]

#

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

rndprogy [09.12.2003 21:00:37]

#

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.

minapamina [09.12.2003 21:17:54]

#

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

rndprogy [09.12.2003 21:27:30]

#

Miten ylipäätään tehdään toptenni (niin että se toimii myös exenä)

minapamina [09.12.2003 21:31:24]

#

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

rndprogy [09.12.2003 21:46:51]

#

Oho! Ratkaisu tais olla liian yksinkertainen. Paitsi että kuka tahansa (sinäkin) voisit muokata sitä.

T.M. [09.12.2003 22:10:17]

#

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

rndprogy [09.12.2003 22:22:45]

#

lainaus:

kuka haluaa muokata ennätystilastojaan??

Kuka vaan joka ei muuten pärjää

T.M. [09.12.2003 23:15:58]

#

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

sooda [10.12.2003 14:31:57]

#

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.

rndprogy [10.12.2003 14:37:48]

#

Kai sitten tyydyn helpoimpaan ratkaisuun eli top lista tekstitiedostoon. Onhan BEER WORMissakin niin.

sooda [10.12.2003 14:39:42]

#

Käytä puttia ja gettiä niin ainakin skoret saa kryptattua... mä käytän ainakin.

thefox [10.12.2003 15:06:01]

#

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

rndprogy [10.12.2003 16:52:36]

#

No nyt kun ne on teksti tiedostossa niin mä en enää osaakkaan laittaa niit suuruus järjestykseen.

sqwiik [10.12.2003 19:49:33]

#

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

rndprogy [10.12.2003 20:11:18]

#

No, heitäpä sitä koodia niin näen ymmärsinkö oikein.

sqwiik [10.12.2003 20:27:52]

#

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.


Sivun alkuun

Vastaus

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

Tietoa sivustosta