Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB6: If - ongelma

Sivun loppuun

killerfox [23.01.2004 17:47:37]

#

Mulla on tälläinen koodi :

Private Sub Text2_change()

If Text2.Text= "avaa note" + Chr$(13) + Chr$(10) Then
(avaa ohjelman:notepad)
ElseIf text2.text="avaa ie" + Chr$(13) + Chr$(10) Then
(avaa Internet Explorerin)

End If
End Sub

Private Sub winsock1_DataArrival(ByVal bytesTotal As Long)
   Dim msg As String
   Winsock1.GetData msg
   Text2.Text = Text2.Text + msg + Chr$(13) + Chr$(10)

End Sub

Tämä on osa verkossa toimivasta hallintajärjestelmän koodista.

Ongelmana on siis se, että if - lause "avaa ie" ei enää toteudu, kun on esimerkiksi lähettänyt viestin "avaa note". Haluaisin, että If - lause toteutuisi, vaikka edelliset viestit näkyisivätkin riveinä textboxsissa.

Edit: Unohtu tuo: Text2.Text = Text2.Text + msg + Chr$(13) + Chr$(10) laittaa tähän kunnolla...

setä [23.01.2004 17:54:34]

#

Laita vaihtoehdot kukin omaan If-lauseeseen näin

If Text2.Text= "avaa note" + Chr$(13) + Chr$(10) Then
(avaa ohjelman:notepad)
End If
If text2.text="avaa ie" + Chr$(13) + Chr$(10) Then
(avaa Internet Explorerin)

End If

Ja jos Text2 sisältää useita rivejä käytä InStr-funktiota

killerfox [23.01.2004 18:13:31]

#

Miten InStr funktiota käytetään?
Tietääkö kukaan?

setä [23.01.2004 19:18:29]

#

If InStr(Text2.text, "avaa ie" + vbCrLf) then

killerfox [23.01.2004 20:07:12]

#

joo toimiihan tuo, mutta sitte siinä on semmonen ongelma kun kirjottaa mitä tahansa niin se avaa ja sulkee cd-aseman, kun kokeilee open cd komentoa.

setä [23.01.2004 20:23:24]

#

Ei ihan tarkkaa tietoa mitä haet, mutta operaatiot voi estää postamalla ko. rivi textboxista tai sitten käyttää taulukkomuuttujaa, jossa tuon InStr-funktion arvoilla joko tehdään tai ei tehdä tietty operaatio.

killerfox [24.01.2004 16:07:45]

#

Siis haluaisin edellisten viestien näkyvän, mutta vain se viimeisin lähetetty viesti toteuttaisi komennon ja siihen serveriin voisi lähettää muitakin viestejä, ilman että cd-asema kävisi auki.

sooda [24.01.2004 16:39:16]

#

no tee silleen että sulla on lista missä on kaikki lähetetyt ja silleen että se sitten lisää siihen viimeisen.

killerfox [24.01.2004 19:24:07]

#

Mää tein sen listan ja se näyttää kaikki viestit mitä on tullut, mutta tästä se ongelma vasta alkaakin. Tarkoitus ois se, että jos listan uusin viesti on "avaa cd", niin if-lause tunnistaa sen ja avaa cd:n. Miten if lauseen saa tunnistamaan sen uusimman lähetetyn viestin?

sooda [24.01.2004 19:26:04]

#

katsot listan viimeisen itemin. List1.List(List1.ListCount-1) kertoo alimman itemin tekstin.

killerfox [25.01.2004 17:51:28]

#

Kokeilin tälläistä koodia, mutta en oikein tajua miten se pitäisi laittaa. Kun serveri vastaanottaa viestin se vain näyttää sen listassa, mutta ei avaa cd:tä.

If List1.List(List1.ListCount - 1)="avaa cd" Then
   Dim X As Long
   X = mciSendString("Set CDAudio Door Open", "", 0, 0)
   End If

Edit: ei tarvi vastata, sain sen itse toimimaan.


Sivun alkuun

Vastaus

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

Tietoa sivustosta