Avatar billede want2learn Nybegynder
16. maj 2006 - 22:22 Der er 9 kommentarer og
1 løsning

start en loop forfra før min når loop

Hej

hvis jeg har en do while sætning med en if sætning hvordan kan jeg så starte loop får tid hvis min if er noget bestemt !?

altså

Do While READ > 0
  ...
  ...
  ...
  If Read <> "2" Then
    .....
  Else
    ReadEnd = ""
    HER VIL JEG STARTE MIN LOOP FØR TID Så DO starter forfra.
  End If
  ...
  ...
Loop
Avatar billede want2learn Nybegynder
16. maj 2006 - 22:25 #1
den skal ikke exit do/loop men bare lave en Loop får tid end den i bunden hvis Read = 2
Avatar billede want2learn Nybegynder
16. maj 2006 - 22:26 #2
Får tid er selvf. før tid ;) nogle der har en ide til problemet
Avatar billede softspot Forsker
16. maj 2006 - 22:29 #3
VBScript har ikke den facilitet som mange af de C-relaterede sprog har (nemlig continue), så du er nød til at strukturere dig ud af det, med f.eks. if-sætninger. Hvordan du helt konkret skal gøre dette i dit tilfælde afhænger meget af hvordan din kode ser ud. Det er langt fra sikkert at du kan bruge den samme metode altid...
Avatar billede want2learn Nybegynder
16. maj 2006 - 22:33 #4
okay min kode er dette (ved godt der er lidt .net i det men loop er stort set det samme)

Protected Sub ManipulateString(ByVal Output As String)

        Dim read As Integer
        Dim readend As Integer
        Dim team As String
        Dim pulje As String
        Dim link As String
        Dim link2 As String
        Dim tekst As String   
       
        read = InStr(1, Output, "CLUBTEAMS START")
        read = InStr(read, Output, "</table")
       
        Do While read > 0
       
            read = InStr(read, Output, "href") + 6
            readend = InStr(read, Output, "style") - 2
            link = Mid(Output, read, readend - read)
       
            read = InStr(read, Output, "linkSR") + 8
            readend = InStr(read, Output, "<")
            team = Mid(Output, read, readend - read)

            read = InStr(read, Output, "<td")
            read = InStr(read, Output, ">")
            If Mid(Output, read + 1, 3) = "<a " Then
                read = InStr(read, Output, "linkSR") + 8
                readend = InStr(read, Output, "<")
                pulje = Mid(Output, read, readend - read)
            Else
                pulje = ""
            End If

            read = InStr(read, Output, "href") + 6
            readend = InStr(read, Output, "style") - 2
            link2 = Mid(Output, read, readend - read)
       
            tekst = tekst & link & " " & team & " " & pulje & " " & link2 & "<br>"
           
            read = InStr(read, Output, "<table")
           
        Loop
        someLabel.Text = tekst

    End Sub

ved denne kode..
Else
  pulje = ""
End If

vil jeg gerne kunne sige at hvis Pulje = "" som den jo er så skal den starte forfra i Do.

håber det evt kunne hjælpe til en ide ;)
Avatar billede softspot Forsker
16. maj 2006 - 22:38 #5
Så er det oplagt at flytte de resterende kodelinier op i if-sætningens første sektion, således:

Protected Sub ManipulateString(ByVal Output As String)

  Dim read As Integer
  Dim readend As Integer
  Dim team As String
  Dim pulje As String
  Dim link As String
  Dim link2 As String
  Dim tekst As String   
       
  read = InStr(1, Output, "CLUBTEAMS START")
  read = InStr(read, Output, "</table")
       
  Do While read > 0
       
    read = InStr(read, Output, "href") + 6
    readend = InStr(read, Output, "style") - 2
    link = Mid(Output, read, readend - read)
       
    read = InStr(read, Output, "linkSR") + 8
    readend = InStr(read, Output, "<")
    team = Mid(Output, read, readend - read)

    read = InStr(read, Output, "<td")
    read = InStr(read, Output, ">")
    If Mid(Output, read + 1, 3) = "<a " Then
      read = InStr(read, Output, "linkSR") + 8
      readend = InStr(read, Output, "<")
      pulje = Mid(Output, read, readend - read)

      read = InStr(read, Output, "href") + 6
      readend = InStr(read, Output, "style") - 2
      link2 = Mid(Output, read, readend - read)
       
      tekst = tekst & link & " " & team & " " & pulje & " " & link2 & "<br>"
           
      read = InStr(read, Output, "<table")
    Else
      pulje = ""
    End If
  Loop
  someLabel.Text = tekst

End Sub


...men det kunne næsten se ud til at du koder i ASP.NET (VB.NET) og ikke ASP 3.0, som denne gruppe vist nok henvender sig til og i VB.NET mener jeg continue er blevet implementeret...
Avatar billede want2learn Nybegynder
16. maj 2006 - 22:45 #6
Det er VB.NET og ASP.NET men Loop bruger du også i ASP 3.0 så mente jeg kunne lave spm her, men du har ret sorry...

jeg rettede dog koden til, og så virker det, hvis den ser sådan her ud.

    Protected Sub ManipulateString(ByVal Output As String)

        Dim read As Integer
        Dim readend As Integer
        Dim team As String
        Dim pulje As String
        Dim link As String
        Dim link2 As String
        Dim tekst As String   
       
        read = InStr(1, Output, "CLUBTEAMS START")
        read = InStr(read, Output, "</table")
       
        Do While read > 0
       
            read = InStr(read, Output, "href") + 6
            readend = InStr(read, Output, "style") - 2
            link = Mid(Output, read, readend - read)
       
            read = InStr(read, Output, "linkSR") + 8
            readend = InStr(read, Output, "<")
            team = Mid(Output, read, readend - read)

            read = InStr(read, Output, "<td")
            read = InStr(read, Output, ">")
            If Mid(Output, read + 1, 3) = "<a " Then
                read = InStr(read, Output, "linkSR") + 8
                readend = InStr(read, Output, "<")
                pulje = Mid(Output, read, readend - read)
               
                read = InStr(read, Output, "href") + 6
                readend = InStr(read, Output, "style") - 2
                link2 = Mid(Output, read, readend - read)
     
            Else
                pulje = ""
            End If
           
            tekst = tekst & link & " " & team & " " & pulje & " " & link2 & "<br>"
           
            read = InStr(read, Output, "<table")
        Loop
        someLabel.Text = tekst

    End Sub


Vil du lægge et svar du svarede jo på det jeg havde problemer med ;)
Avatar billede softspot Forsker
16. maj 2006 - 22:48 #7
Jeg lægger et svar :)

Det var nu heller ikke fordi jeg ville være firkantet mht. placeringen af spørgsmålet, for hvis jeg kan hjælpe her, gør jeg da gerne det, men du ville nok bare have bedre muligheder for at få hjælp, hvis du placerede spørgsmålet i den korrekte kategori - så det mest for din egen skyld :)
Avatar billede want2learn Nybegynder
16. maj 2006 - 22:52 #8
np ;) men tak alligevel men vil nok lige spørge i VB.Net om det kan gøres bedre og nemmere ang. Continue som du nævnte
Avatar billede softspot Forsker
16. maj 2006 - 22:59 #9
Ja, der er ikke nogen grund til at gøre det mere besværligt en nødvendigt :)

Dog synes jeg den metode du kommer frem til der er mere naturlig at læse, fordi strukturen giver et klart billede af hvad der hører sammen. I øvrigt ville du heller ikke kunne bruge Continue (hvis den da findes i VB.NET - jeg er kommet lidt i tvivl efter at have kigget på MSDN), da de to sidste linier så skulle rykkes ind i både if- og else-delen for at opnå samme funktionalitet som den du har i ovenstående kode... apropos mere besværligt end nødvendigt, så ville det jo være ekstraarbejde :)

...og sidste men ikke mindst, tak for point :)
Avatar billede want2learn Nybegynder
16. maj 2006 - 23:13 #10
np og igen selv tak ;)
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