Gå til innhold

Hvordan repetere en sekvens?


Anbefalte innlegg

Skrevet

Jeg trenger hjelp til å repetere en output-sekvens. Sekvensen skal gå en gitt tid som velges i "TextBox1" . Et klikk på "ButtonStop" skal kunne stanse det hele selv om ikke tiden har gått.

 

Jeg bruker VB.net 2008 Express edition.

 

Slik ser det ut nå:

 

Private Sub ButtonRun_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonRun.Click

doutSS.SetSingleValue(1)

Sleep(500)

doutSS.SetSingleValue(2)

Sleep(500)

doutSS.SetSingleValue(3)

Sleep(500)

doutSS.SetSingleValue(4)

Sleep(500)

End Sub

 

Håper noen der ute kan hjelpe meg videre.

Videoannonse
Annonse
Skrevet

Bruk en for løkke for dette.

Syntaksen er

 

FOR (Variabel) = (Start) TO (Stopp) [sTEP (antall steg per iterasjon)]

...

NEXT

 

F.eks.

 

For X As Integer = 0 To 100

Console.WriteLine(X.ToString())

Next

 

1 er standard for STEP hvis ikke du setter noen annen verdi

 

I Ditt tilfelle vil du telle fra 1 to 4

 

For i As Integer = 1 To 4
 doutSS.SetSingleValue(i)
 System.Threading.Thread.Sleep(500)
Next

 

Hvis du vil telle baklengs, må du sette step

 

For x As Integer = 100 To 0 Step -1
 Console.WriteLine(x.ToString())
Next

Skrevet

Takk for hjelpen GeirGrusom.

 

Jeg har nå prøvd dette:

 

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
           For i As Integer = 1 To 8 Step 5
               doutSS.SetSingleValue(i)
               System.Threading.Thread.Sleep(500)
           Next
       End Sub

 

Det er mulig jeg misforstod deg, men når koden ser ut som overstående, så får jeg bare output "1", og der blir det stående. Jeg prøvde å ta bort "Step 5", og da fikk jeg hele sekvensen som output. Skal "Step" stå på en annen måte?

 

Hva med mulighet for å avbryte en sekvens med en stoppknapp?

 

Hvorfor skriver du "System.Threading.Thread.Sleep ()" i stedet for "Sleep ()"?

 

Som du sikkert skjønner, så er jeg ikke så veldig erfaren med programmering.

Skrevet

Når du skriver "Step 5" betyr det at variabelen i vil hoppe fem steg om gangen. Altså starter den på 1, hopper til 6, og er så ferdig (fordi neste steg er 6+5=11 som er større enn 8).

Skrevet

Nå skjønner jeg. Så hvis jeg skriver "1 To 8 Step 2", så vil jeg bare få oddetall(?)

 

Men hvordan skal jeg få den til å starte på nytt når den er fredig med output 8, igjen og igjen og igjen og igjen og igjen...?

 

En slags Do...Until-fuksjon, kanskje?

Skrevet

Er det virkelig ingen der ute som kan hjelpe meg med dette.

 

Jeg har fått til å repetere sekvensen nå ved hjelp av Do...Loop, men problemet er da å få stoppet den igjen. Slik jeg har det nå så er eneste mulighet å lukke hele programmet. Sånn kan det jo ikke være.

 

Jeg må, som tidligere nevnt i tråden, kunne kjøre sekvensen i loop (e.l.) i en gitt tid/ antall repetisjoner, og/eller kunne stoppe den ved hjelp an en knapp.

Skrevet

.... Sekvensen skal gå en gitt tid som velges i "TextBox1"

 

Har du ikke en timer kontroll i verktøykassa da? Legg hele sulamitten inn i timer-tick-sub'en og sett f.eks. timer-interval lik 1000. Da har du en klokke som utfører sakene dine 1 gang pr. sekund og som er lett å kontrollere med timer-enabled lik false/true.

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...