Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: VB.NET: Värin tunnistaminen / tekstin etsiminen

Short Php [13.04.2008 12:42:19]

#

Eli näitä kumpaakin tarvitsisin. Tuossa värin tunnistuksessa funktiolle pitäisi antaa värin nimi/rgb tai jotain sellaista ( sopii myös että ulkopuolisen bittikartan avulla etitään vastaavuuksia) ja tekstin etsimisestä, tiedän findstring() funktion, mutta koodini pitäisi etsiä koko tekstistä, eikä vain alusta.

Antti Laaksonen [13.04.2008 13:23:47]

#

Tuossa on merkkijonon etsiminen:

Dim mjono, haku As String
Dim kohta As Integer
mjono = "Kappas kippis!"
haku = "pp"
kohta = 0
Do
    kohta = mjono.IndexOf(haku, kohta)
    If kohta = -1 Then Exit Do
    MsgBox("Löytyi kohdasta " & kohta)
    kohta = kohta + 1
Loop

Mitähän tarkoitat värin tunnistuksella? Mitä funktiolle tarkalleen annetaan parametrina ja mitä sen pitää tarkalleen palauttaa?

Short Php [13.04.2008 13:44:04]

#

Funktiolle annetaan värin arvo ja se palauttaa missä x ja y akselissa se väri esintyy ensimmäisen kerran.

nomic [13.04.2008 14:47:39]

#

Private Sub Form_Load()
    kuva.ForeColor = vbBlack
    kuva.PSet (10, 10)
    koord = Split(haeväri(0, 0, 0), ".")
    MsgBox koord(0) & "-" & koord(1)
    End
End Sub

'syötetään rgb:t funktiolle, joka palauttaa stringinä olinpaikan.
Function haeväri(r As Byte, g As Byte, b As Byte) As String
For x = 0 To kuva.Width
 For y = 0 To kuva.Height
   väri = kuva.Point(x, y) 'otetaan talteen Mordorin keksintö

    r2 = väri Mod 256
    g2 = (väri \ 256) Mod 256
    b2 = väri \ 65536

   If r2 = r And g2 = g And b2 = b Then 'löytyi
    haeväri = x & "." & y
    Exit Function 'poistutaan
   End If
 Next y
Next x
haeväri = "-1.-1" 'ei löytynyt.
End Function

Olisikohan tästä apua?

Short Php [13.04.2008 16:38:53]

#

Kai tuosta, vaikka tuo pitääkin modaa vb .netille

setä [13.04.2008 23:22:43]

#

Tulee ainkin 3*nopeammaksi jos testaat heti värin tsekkausen jälkeen:

r2 = väri Mod 256
If r2 = r Then
  g2 = (väri \ 256) Mod 256
  If g2 = g Then
    b2 = väri \ 65536
    If b2 = b Then
      ...

Vastaus

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

Tietoa sivustosta