...on seuraava: meillä on tekstitiedostossa vaikkapa nimiä, ja VB-lomakkeella kaksi tekstikenttää, joista toiseen tulostetaan tiedostosta etunimi ja toiseen sukunimi. Mutta Common Dialog -oliota ei saa käyttää. Kuinka toimitaan?
Ja ongelma jatkuu: nuolinäppäimiä painelemalla pitäisi pystyä siirtymään tiedostosta haettuun seuraavaan tai edelliseen nimeen....Paljon kiitoksia jo etukäteen.
Ja ongelma jatkuu: nuolinäppäimiä painelemalla pitäisi pystyä siirtymään tiedostosta haettuun seuraavaan tai edelliseen nimeen....Paljon kiitoksia jo etukäteen.
Vastaukset 2
Vanhimmat
Miten commondialog edes liittyy tiedoston käyttöön. Se on nimensä mukaisesti vain dialogi jolla saa kätevästi selville tiedostonimet.
Visual Basic käyttää tiedostojen aukaisuun Open käskyä.
esim. open for as
esim. syntaksi: open "tiedosto.txt" for input as 1
Tiedosto suljetaan tässä tapauksessa käskyllä 'close 1'
Tiedoston luku kannattaa hoitaa Do...Loop rakenteella:
Do
input#1, a$ 'Luetaan rivi merkkijono muuttujaan a$
Loop until eof(1) ' Silmukka pyörii niin kauan kuin tiedoston lopetusmerkki tulee vastaan
close 1 ' Suljetaan tiedosto
Edellisen esimerkin silmukasta voit myös lukea rivit merkkijono taulukkoon, kunhan lisäät silmukkaan laskurin.
Sitten vain kopsaat taulukosta halutut tiedot tekstikenttiin, ja edespäin ja taaksepäin luku toimii muuttamalla taulukon indeksiä. Eli suora luku tiedostosta ei ole suotavaa, vaan tiedoston sisältö luetaan keskusmuistiin muuttujiin, jonka jälkeen tietoa käsitellään nimenomaan muuttujissa.
Tässä yksi ratkaisu ongelmaanne:
Oletetaan että teillä on teksti tiedosto nimet.txt
Sen sisältö on tälläinen (oman voi kirjoittaa vaikka notepadilla):
Aku
Ankka
Iines
Ankka
jne...
Eli siis joka toisella rivillä on etunimi, joka toisella sukunimi.
Laitetaan lomakkeeseen kaksi tekstikenttää nimenltään text1 ja text2, toiseen tulee siis etunimi toiseen sukunimi. Lisäksi lomakkeeseen tulee kaksi painonappia button1 ja button2
koodi näkymän ikkunassa lisätään general osioon käsky Dim etunimet(500) as string, sukunimet(500) as string, laskuri as integer, maara as integer
eli nyt ohjelmalla voidaan käsitellä maksimissaan 500 nimeä.
form_load() metodiin kirjoitetaan tekstitiedoston luku osio:
------------------
open app.path "
imet.txt" for input as 1
laskuri=0
maara=0
do
input#1,etunimet(maara)
input#1,sukunimet(maara)
maara=maara 1
loop until eof(1)
close 1
maara=maara-1
text1.text=etunimet(laskuri)
text2.text=sukunimet(laskuri)
Allright. Nyt tarvitsee vain ohjelmoida painonapeille tietueen selaus toiminta:
button1_click() metodiin seuraava koodi
laskuri=laskuri 1
if laskuri>maara then laskuri=0
text1.text=etunimet(laskuri)
text2.text=sukunimet(laskuri)
ja button2-click() metodiin seuraava koodi
laskuri=laskuri-1
if laskuri
, sanoi Ääliö.