Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6 ja "config"-tiedostojen käyttö

Sivun loppuun

rautamiekka [20.02.2007 00:30:59]

#

Elikkäs: ajattelin alkaa kokeilla jonkinlaista VB6-versiota siitä miten runescapessa luetaan ja lopuksi lasketaan esineiden att/str/def bonus, ja olen täysin varma että joka ikisen objektin tiedot on tallennettu config-tiedostoon. Koitin ratkaista asiaa hyödyntäen 'Peliohjelmointi Visual Basicilla'-artikkelia ja sain jotakin, mutta en sitä miten tiedostosta luetaan aina yhdellä rivillä olevan tiedon kerrallaan ja välitetään pääosin vain siitä mitä on '='-merkin jälkeen.

Pystyykö kukaan edes pikkasen auttamaan ?

PS. Olisi kiva tietää, koska aion joskus väsätä pienen pelin jonka objetien tiedot pohjautuisivat config-tiedostoihin, mikäli se yleensäkään on mahdollista.
Satuin sulkemaan VB:n jo joten koodia en pysty näyttämään :(

Ravver [20.02.2007 08:26:56]

#

https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=vbo_8

neau33 [20.02.2007 09:06:47]

#

Heippa rautamiekka!

Tässä olis eräs tapa poimia asetuksia...

Private Sub Command1_Click()
  TextBox1.Text = "": Dim filuStr() As String
  Open "filu.config" For Input As #1
    filuStr = Split(Input$(LOF(1), 1), ">"): Close #1
   Dim hlpStr() As String
  For i = LBound(filuStr) To UBound(filuStr)
   If InStr(filuStr(i), "=" & Chr$(34)) > 0 Then
    j = j + 1: ReDim Preserve hlpStr(j) As String: hlpStr(j) = filuStr(i)
   End If
  Next i
   Dim hlp2Str As String
  For i = LBound(hlpStr()) To UBound(hlpStr())
   For j = 1 To Len(hlpStr(i))
     hlp2Str = ""
    If Mid$(hlpStr(i), j, 2) = "=" & Chr$(34) Then
     For k = j + 2 To Len(hlpStr(i))
      If Mid$(hlpStr(i), k, 1) = Chr$(34) Then Exit For
       hlp2Str = hlp2Str & Mid$(hlpStr(i), k, 1)
     Next k
    Text1.Text = Text1.Text & hlp2Str & vbCrLf
    End If
   Next j
  Next i
End Sub

Blaze [20.02.2007 12:38:59]

#

https://www.ohjelmointiputka.net/keskustelu/1997-ini-tiedostot

rautamiekka [21.02.2007 01:49:59]

#

Öh, eikö helpommalla pääse, neau33 ?
Tuo Ravverin linkittämä artikkelli on paljon lyhyempi ja selkeempi. Voiko 'For i = 1 to 5'-lauseen vitosta muuttaa suuremmaksi kuin tiedostossa on rivejä ? Entä onko siihen mitään "automaatti"käskyä joka lukee tiedostoa niin pitkälle kunnes loppuu ?

rautamiekka [21.02.2007 11:30:37]

#

VB6 väittää 'Subcript out of range' tästä

  For i = LBound(hlpStr()) To UBound(hlpStr())

ja kun laittaa kursorin LBound- tai UBound-sanan päälle, tooltip sanoo

LBound(hlpStr()) = <subscript out of range> tai UBound ...

EDIT: Tiedän kyllä Read/WriteINI-koodeista mutta voisin koittaa muita.

Quirzo [23.02.2007 12:58:40]

#

No tee sitten itse.

rautamiekka [24.02.2007 00:38:23]

#

"no tee sitten itse" vissii on mahdollista


Sivun alkuun

Vastaus

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

Tietoa sivustosta