Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: [VB] Arvot stringien välistä

Sivun loppuun

JussiR [13.02.2007 15:42:00]

#

Jos mulla on textboxissa tekstiä ja yhdellä rivillä on "<tomatoes>85|85|85|85|85|85|85|85|33|33|33</tomatoes>" niin miten saisin että mun ohjelma tietää jos jokin noista luvuista on 89?

nomic [13.02.2007 16:04:01]

#

En ole nyt ihan varma, että mitä hait, mutta tässä pieni esimerkki:

Private Sub Form_Load()
    Dim stringi As String 'tarvittavat muuttujat
    Dim luku As Byte, aloitus As Integer, lopetus As Integer
    Dim määrä As Byte

    luku = 85 'mitä lukua etsitään
    määrä = 0

    stringi = "<tomatoes>85|85|85|85|85|85|85|85|33|33|33</tomatoes>" 'teksti, josta revitään tieto irti
    aloitus = InStr(stringi, ">") 'otetaan selville aloitus
    lopetus = InStr(stringi, "</")'...ja lopetus.

    stri = Split(Mid(stringi, aloitus, lopetus - aloitus), "|") 'otetaan tekstistä tarvittava siivu ja tehdään siitä taulu

    For i = 0 To UBound(stri) 'käydään äsköinen taulu läpi forrilla.
      If stri(i) = luku Then 'jos luku on se, jota me haettiin, niin sitten:
        määrä = määrä + 1
        MsgBox "OU MAI KAAD! MÄÄRÄ ON " & määrä & ". !!1"
      End If
    Next i
End Sub

JussiR [13.02.2007 16:13:03]

#

Tolla jäi eka luku välistä.
Sain nyt InStr:llä että se ottaa tekstin joka on > ja </ merkkien välissä, mutta vielä pitäis saada että vaikka tulee msgbox jos siellä välissä on jossain luku 89.

nomic [13.02.2007 16:15:45]

#

Eipä ole tällä koneella VB:tä, niin en voi tarkistaa. Mutta tossa luulisi olevan tarpeeksi jo vinkkiä siihen, mitä ikinä sitten haetkin... Harvemmin annetaan kaikki valmiina, hopeatarjottimella. ;)

JussiR [14.02.2007 19:28:14]

#

Entäs jos mulla on TextBoxissa luvut "70,23,53,15,53" tjsp. Haluaisin että ohjelma laittaa ensimmäisen noista luvuista TextBox ykköseen ja toisen textbox kakkoseen jne.
Miten? =)

sqwiik [14.02.2007 19:42:09]

#

Apunasi funktiot Split (erottimena nyt ",") ja kontrollitaulukko. Sekä for-silmukka.

JussiR [15.02.2007 15:42:33]

#

Mutta kun oon niin p*ska etten tajua enkä osaa. Mun projekti jää pahasti kesken jos en pysty tuota tekemään.

Dim jutut As String
Dim eka As String
Dim toinen As String
Dim Kolmas As String
Dim Neljäs As String

Private Sub Form_Load()
jutut = "50|30|60|30"
Erottele
End Sub

Private Sub Erottele()
Tähän haluaisin että ohjelma laittaa "eka":n arvoksi luvun joka on "jutut":ssa ensimmäisenä eli "50" ja "toka": arvoksi luvun joka on "jutut":ssa toisena eli "30" jne.
End Sub

tsuriga [15.02.2007 15:50:11]

#

https://www.ohjelmointiputka.net/hak/?kieli­=Visual Basic&nimi=Split siitäpä niin hävyttömän suora esimerkki, notta.

Legu [15.02.2007 15:52:36]

#

JussiR kirjoitti:

Private Sub Erottele()
Tähän haluaisin että ohjelma laittaa "eka":n arvoksi luvun joka on "jutut":ssa ensimmäisenä eli "50" ja "toka": arvoksi luvun joka on "jutut":ssa toisena eli "30" jne.
End Sub

Ei sitä noin kannata tehdä. Näin pitäisi onnistua:

Dim luvut() as Integer
Dim jutut as String

Private Sub Erottele()
 jutut = "123|321|12|34"
 luvut = Split(jutut, "|")
 msgbox luvut(LBound(luvut) + 1) 'Tulostaisi toisena olevan eli 321
End Sub

Ei ole VB:tä koneella niin ei oo tietoo toimiiko.

EDIT: Hidas :<

JussiR [16.02.2007 13:00:44]

#

Tulee type mismatch kohdasta "luvut = Split(jutut, "|")"
Edit: Laitoin Dim luvut() As Integer -> Dim luvut() As String ja toimii.

Yks kysmys vielä. Miksiköhän tätä nappia painamalla ei tapahdu mitään?

Private Sub Korjaaja_Click()
With Korjaaja
If Korjaaja.Caption = "Käynnistä sadon korjaaja" Then
Korjuu = True
Korjaus
Log "Sadon korjaaja käynnistetty."
.Caption = "Sulje sadon korjaaja"
Exit Sub
Else
.Caption = "Käynnistä sadon korjaaja"
Log "Sadon korjaaja suljettu."
Korjuu = False
End If
End With
End Sub

Edit vaikka laittaisin minkä napin tekemään tuota niin ei tapahdu mitään. Miksi??

Quirzo [16.02.2007 15:25:29]

#

Kokeile tätä

Private Sub Korjaaja_Click()

If korjaaja.caption = "Käynnistä sadon korjaaja" then
	Korjaaja.caption = "Sulje sadon korjaaja"
	Log "Sadon korjaaja käynnistetty."
		Korjuu = True
		Korjaus
Else
	Korjaaja.caption ="Käynnistä sadon korjaaja" then
	Log "Sadon korjaaja suljettu"
		Korjuu = False
endif

JussiR [16.02.2007 19:53:09]

#

Joo tajusin äsken :D


Sivun alkuun

Vastaus

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

Tietoa sivustosta