Avatar billede aero Nybegynder
18. februar 2011 - 23:54 Der er 6 kommentarer og
1 løsning

Hvordan bruges index.of og count

Hej

Hvis jeg har dette stykke kode

        Dim input As String = reader.ReadToEnd()
        Dim StartToken As String = "<div id="divMain2" class="mainDiv">"                                                                                Dim EndToken As String = "</div>"        Dim ContentStartPosition As Integer = Input.IndexOf(StartToken) + StartToken.Length
        Dim ContentEndPosition As Integer = Input.IndexOf(EndToken)
        Dim Length As Integer = ContentEndPosition - ContentStartPosition
        Dim Content As String = Input.Substring(ContentStartPosition, Length)
        someLabel.Text = Content

Mit problem med denne kode er at den viser koden fra
<div id="divMain2" class="mainDiv"> og det er fint, men den stopper ved den første </div> efter denne kode, jeg ved den skal springe den første </div> over men så stoppe ved den næste </div>

hvordan kan jeg gøre det !?
Avatar billede arne_v Ekspert
19. februar 2011 - 00:02 #1
IndexOf har et overload som tager et start index, så søg og så søg igen med start index sat til første match + 1.

Alternativt skift til regex - IndexOf kan hurtigt blive noget slemt fedteri.
Avatar billede tjens Nybegynder
19. februar 2011 - 08:34 #2
String har også metode LastIndexOf i VB (m.fl.)



http://msdn.microsoft.com/en-us/library/system.string.lastindexof(v=vs.71).aspx

msdn.microsoft.com/en-us/library/system.string.lastindexof(v=vs.71).aspx

Hmm..  Eksperten kan ikke lide msdn linket med () i url.
Avatar billede aero Nybegynder
19. februar 2011 - 12:59 #3
@ Tjens
Faktisk rart at vide hvis jeg ved jeg har en bestemt class lige efter en </div> for så kan jeg have den class i min ContentEndPosition og så lave en LastIndexOf, rart at vide.

@ Arne
ja men jeg bøvler med det.
Hvis jeg har dette.....
"Fem Flade flødeboller på et fladt flødebolle fad."
Hvis så vi antager at jeg skal lave en IndexOf på F/f men det KUN er fra 4. F jeg vil have teksten, altså "fladt flødebolle fad."

Hvordan vil en evt. indexOf kode se ud for at hoppe gennem de første 3 ord med F. Ved gost jeg kan bare skrive Fladt som søge ord, men lad os antage det er "f/F" vi søger efter.

er blank ang. hvad jeg skal gøre, håber en lige vil give et eks. på min tekst linje så jeg kan se hvordan man kan gøre og så derefter rette så den virker til mit </div> nr 2 spm.
Avatar billede arne_v Ekspert
19. februar 2011 - 15:16 #4
Dim s As String = "Fem Flade flødeboller på et fladt flødebolle fad."
        Console.WriteLine("Første : " & s.ToLower().IndexOf("f"C))
        Console.WriteLine("Sidste : " & s.ToLower().LastIndexOf("f"C))
        Dim ix As Integer = 0
        While 0 <= ix And ix < s.Length
            ix = s.ToLower().IndexOf("f"C, ix)
            If ix >= 0 Then
                Console.WriteLine("Alle : " & ix)
                ix = ix + 1
            End If
        End While

udskriver:

Forste : 0
Sidste : 45
Alle : 0
Alle : 4
Alle : 10
Alle : 28
Alle : 34
Alle : 45
Avatar billede aero Nybegynder
19. februar 2011 - 17:55 #5
det forstod jeg ikke lige noget af..
Avatar billede arne_v Ekspert
19. februar 2011 - 19:54 #6
Lad mig udvide lidt så:

        Dim s As String = "Fem Flade flødeboller på et fladt flødebolle fad."
        Console.WriteLine("Første : " & s.ToLower().IndexOf("f"C))
        Console.WriteLine("Sidste : " & s.ToLower().LastIndexOf("f"C))
        Dim ix As Integer = 0
        While 0 <= ix And ix < s.Length
            ix = s.ToLower().IndexOf("f"C, ix)
            If ix >= 0 Then
                Console.WriteLine("Alle : " & ix)
                ix = ix + 1
            End If
        End While
        ix = s.ToLower().IndexOf("f"C)
        ix = s.ToLower().IndexOf("f"C, ix + 1)
        Console.WriteLine("Nummer 2 : " & ix)
        ix = s.ToLower().IndexOf("f"C)
        ix = s.ToLower().IndexOf("f"C, ix + 1)
        ix = s.ToLower().IndexOf("f"C, ix + 1)
        ix = s.ToLower().IndexOf("f"C, ix + 1)
        Console.WriteLine("Nummer 4 : " & ix)
Avatar billede arne_v Ekspert
27. marts 2011 - 04:33 #7
OK?
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



IT-JOB