Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Taulukko (QB)

gamehouse [30.09.2007 17:32:08]

#

Yritän nyt tehdä erästä juttua, jossa pitäisi lukea Users.cos- tiedostosta käyttäjien nimet taulukkoon, josta vertailtaisiin käyttäjän antamaa nimeä. Jos nimi löytyy, päästetään käyttäjä sisälle, jos ei niin ei päästetä! :D Ongelmana on , että en osaa käyttää taulukoita vielä kovin hyvin. Hädin tuskin osaan taulukon määrittelyn. Apua!

tgunner [30.09.2007 19:11:38]

#

Mihin sinä taulukkoa tarvitset? Ellet sitten puhu merkkitaulukoista, joita ei tietääkseni QB:ssä ole...
Käyt vain läpi yksitellen tiedoston sisällä olevat nimet ja vertaat niitä käyttäjän antamaan nimeen. Et tarvitse kuin kaksi merkkijonomuuttujaa; yhden, missä on käyttäjän antama nimi ja temp-muuttuja, johon tallennetaan tiedoston nimet.

pseudokkaasti:

kysy nimi [knimi]
lue tiedoston nimet läpi
jos [knimi] == [luettu nimi]
sisälle->

edit. niin mutta jos välttämättä haluat taulukot:
DIM nimet(10) AS STRING

Latska [01.10.2007 11:02:57]

#

Yksinkertaisella loopilla fakeosisi(?) luultavasti saa käyttäjätoimet kuntoon. Annan jonkinlaista, todella purkkaa esimerkkikoodia, joka ainakin pintatestauksen osalta ajoi asiansa hyvin. Ole hyvä.

'Oletetaan, että Users.cos sisältää seuraavat nimet:
'Latska, gamehouse, Eino, Johan Peter, Madeleine, Salvador, Che

dim nimet(25) as string
dim na as integer
dim nimi as string
dim li as integer 'nimilistamuuttuja

na = 0
li = 0 'oletuksena nimeä ei ole listalla

open "Users.cos" for input as #1

line input "Kukas olet? ", nimi

'pörrätään loopissa kunnes tiedosto loppuu
do until eof(1)
	line input #1, nimet(na)

	if nimi = nimet(na) then
	  li = 1 'nimi on listalla
	  exit do
	end if

	na = na + 1
loop

'nimeä ei ole listalla
if li = 0 then
  print "Nimeäsi ei löydy kutsuvieraslistalta. /kick"
  sleep
  end

'nimi on listalla
elseif li = 1 then
  print "Pääsit sisään järjestelmään."

'jos jotain muuta on sattunut
else
  print "Tämän tekstin ei pitäisi ilmestyä ikinä."
  sleep
  end

end if

sleep
end

'Pari esimerkkiajoa:

'Kukas olet? Latska
'Pääsit sisään järjestelmään.

'Kukas olet? Nuuskamuikkunen
'Nimeäsi ei löydy kutsuvieraslistalta. /kick

gamehouse [05.10.2007 20:07:35]

#

Kiitos paljon! Tätä sovellan muihinkin projekteihini!

Vastaus

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

Tietoa sivustosta