Avatar billede flashit Nybegynder
11. september 2003 - 21:06 Der er 17 kommentarer og
1 løsning

instr fejl i .net

Hej E

Ka i sige mig hvorfor jeg ikke kan bruge instr i nedenstående kode:


        Dim tekt As String
        Dim soeg
        Dim result As Integer

        tekt = txttekst.Text
        soeg = txtkarakter.Text

        result = instr(1, tekt, soeg)
        txtResultat.Text = result
Avatar billede mikker Nybegynder
11. september 2003 - 21:18 #1
Hvad er problemet?
Med ovenstående kode burde du bare få et tal txtResultat. Får du det burde det fungere korrekt...

- Mikker
Avatar billede mikker Nybegynder
11. september 2003 - 21:20 #2
Altså:

Vi tænker os at tekt = "DETTEERENTEST"
Samt at soeg = "EN"

Så burde txtresultat være "8" ...
Avatar billede flashit Nybegynder
11. september 2003 - 21:23 #3
Det var også det jeg troede???
fejlen:

instr is a namespace, and so is not a valid expression
Avatar billede cbp Nybegynder
11. september 2003 - 21:34 #4
VB.Net er blevet mere objektorienteret og InStr er derfor erstattet med en metode på en instans af String-klassen som hedder IndexOf. Eks.:

tekt.IndexOf(soeg, 1)
Avatar billede flashit Nybegynder
11. september 2003 - 21:42 #5
OK, men hvordan kan jeg få bruge denne så.
Jeg indtaster følgende tekst i txttekst - dette er en test
og søger på t
resultetet skal derfor være - 4

Men din metode retuneter placeringen af det føreste t. det er ikke lige det jer er ude efter.
Avatar billede martin_moth Mester
12. september 2003 - 08:34 #6
Flashit: Du er havnet i forkert kategori - bare til en anden gang, så prøv i http://www.eksperten.dk/kat/354

Mht. dit spørgsmål, så har du ikke forklaret hvad du vil - vil du ALTID finde den sidste "t", eller vil du blot springe den første "t" over, eller?
Avatar billede Nybegynder
12. september 2003 - 10:05 #7
Prøv dette så skulle den væer der

tekt = txttekst.Text
soeg = txtkarakter.Text
result = instr(1, tekt, soeg)
txtResultat.Text = mid(tekt,result,len(soeg))

Hilsen Lars
Avatar billede martin_moth Mester
12. september 2003 - 10:17 #8
Lars - tror ikke helt du har læse ovenstående. Det er VB.NET...
Avatar billede Nybegynder
12. september 2003 - 10:50 #9
Ha Ha det over så jeg Martin.
Avatar billede mikker Nybegynder
12. september 2003 - 22:45 #10
Det kender jeg godt.... Lavede den samme fejl... Næsten...
Avatar billede flashit Nybegynder
12. september 2003 - 22:51 #11
jeg vil gerne have retuneret antallet at t'er i teksten.

PS jeg havde ikke set at der var en vb.net :-)
Avatar billede martin_moth Mester
12. september 2003 - 23:08 #12
Først nu - efter over 10 indlæg - fortæller du, at du vil have ANTALLET og ikke PLACERINGEN af t'er...

Tror jeg springer fra her
Avatar billede arne_v Ekspert
12. september 2003 - 23:11 #13
Hvis det er VB og ikke VB.NET så kan følgende tælle (kan sikkert laves
smartere men ...):

Function CountSubStr(s As String, ss As String) As Integer
    Dim res As Integer
    Dim ix As Integer
    res = 0
    ix = 0
    Do
        ix = InStr(ix + 1, s, ss)
        If ix > 0 Then res = res + 1
    Loop Until ix <= 0
    CountSubStr = res
End Function

Function testcss()
    MsgBox Str(CountSubStr("Dette er en test", "t"))
End Function
Avatar billede arne_v Ekspert
12. september 2003 - 23:18 #14
I VB.NET vil det samme se ud som:

Imports System
Module Main
    Function CountSubStr(s As String, ss As String) As Integer
        Dim res As Integer
        Dim ix As Integer
        res = 0
        ix = 0
        Do
            ix = s.indexOf(ss, ix + 1)
            If ix > 0 Then res = res + 1
        Loop Until ix <= 0
        CountSubStr = res
    End Function
    Sub Main()
        Console.WriteLine(CountSubStr("Dette er en test", "t"))
    End Sub
End Module
Avatar billede arne_v Ekspert
12. september 2003 - 23:18 #15
Og lad os kalde det et svar.
Avatar billede flashit Nybegynder
12. september 2003 - 23:34 #16
Hvad sker der Martin? det er da også det jeg har prøvet at forklare i mit andet indlæg. Men nu jeg kigger efter så er der også placeret et t på position 4. MEN :-) det er vel ikke det værste der er sket.
Avatar billede martin_moth Mester
13. september 2003 - 11:06 #17
Det er bare irreterende at bruge 10 indlæg på at forsøge at hjælpe med noget, der viser sig slet ikke at være det der efterspørges... Men det er bare min mening
Avatar billede flashit Nybegynder
13. september 2003 - 11:44 #18
Det er helt ok, jeg kan jo sagtens se at det er mig som har formuleret mig dårligt :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester