Avatar billede horsmark Nybegynder
27. november 2000 - 21:24 Der er 8 kommentarer og
1 løsning

Loop incl. If ?

    Do Until Dayloop = 2
      If Daywrite = \"S\" Then
      Daywrite = \"M\"
      End If
      If Daywrite = \"M\" Then
      Daywrite = \"T\"
          Else If Daywrite = \"T\" Then
          Daywrite = \"O\"
            Else If Daywrite = \" T\" Then
            Daywrite = \"F\"
              Else If Daywrite = \"L\" Then
              Daywrite = \"S\"
      End If
      Document.Write \"<td width=10 bgcolor=ffffff>&nbsp;\" & Daywrite & \"</td>\"
      Dayloop = Dayloop + 1
    Loop

Ovenstående er VBscript. Jeg har åbenbart ikke styr på look incl. if sætninger. Kan du knække denne?

Mvh.
HorsMark §:)
Avatar billede horsmark Nybegynder
27. november 2000 - 21:24 #1
look = loop *hæh*
Avatar billede mikker Nybegynder
27. november 2000 - 21:37 #2
For mig ser det ud som om at du kun får et \"S\"?

Altså, hvis du starter med en værdi for dayloop på 0 så vil den løbe igennem og sige:

OK nu er jeg \"S\", jamen så skal jeg jo være \"M\", men hvis jeg  er\"M\" skal jeg vel være \"T\" osv. osv.
Det vil den så gøre 3 gange _INDEN_ den finder ud af at skrive til siden???

Men det er jo _lidt_ svært når du ikke fortæller mig hvad dit prob. helt nøjagtigt er...

Er det muligt at lave select statements i VBScript? Det ville da gøre det hele lidt nemmere.

Har egentlig aldrig selv leget med Script.

Slut på endnu en omgang bavl fra
- Mikker
Avatar billede horsmark Nybegynder
27. november 2000 - 22:05 #3
sorry jeg kom til at smide min test*prøve*hvad*der*virker ud på eksperten *GG* Hvorfor virker dette ikke

Dim Dayloop, Daywrite

Dayloop = 0

Do Until Dayloop = 36
      If Daywrite = 1 Then
      Daywrite = 2
      Else If Daywrite = 2 Then
      Daywrite = 3
          Else If Daywrite = 3 Then
          Daywrite = 4
      End If
      Document.Write \"<td>\" & Daywrite & \"</td>\"
      Dayloop = Dayloop + 1
    Loop

*smil* sorry prøv lige at ta´ en kigger på ovenstående

Mvh.
Jesper

ang. Select Statements så er der dette:

The following example illustrates the use of the Select Case statement.

Dim Color, MyVar
Sub ChangeBackground (Color)
  MyVar = lcase (Color)
  Select Case MyVar
      Case \"red\"    document.bgColor = \"red\"
      Case \"green\"  document.bgColor = \"green\"
      Case \"blue\"    document.bgColor = \"blue\"
      Case Else      MsgBox \"pick another color\"
  End Select
End Sub
Avatar billede horsmark Nybegynder
27. november 2000 - 22:07 #4
Dim Dayloop, Daywrite

Dayloop = 0
Daywrite = 0

Do Until Dayloop = 5
      If Daywrite = 1 Then
      Daywrite = 2
        Else If Daywrite = 2 Then
        Daywrite = 3
        Else If Daywrite = 3 Then
        Daywrite = 4
      End If
      Document.Write \"<td>\" & Daywrite & \"</td>\"
      Dayloop = Dayloop + 1
    Loop


ooog sidste gang for prins knud ;-)
Avatar billede horsmark Nybegynder
27. november 2000 - 22:08 #5
Virker mit ovenstående i VB ? (det kokser i VBscript... noget med missing do... eller noget
Avatar billede tdaugaard Nybegynder
28. november 2000 - 02:10 #6
Else If\" skal være ElseIf!

Dayloop = 0
Daywrite = 0

Do Until Dayloop = 5
  If Daywrite = 1 Then
    Daywrite = 2
  ElseIf Daywrite = 2 Then
    Daywrite = 3
  ElseIf Daywrite = 3 Then
    Daywrite = 4
  End If

  Document.Write \"<td>\" & Daywrite & \"</td>\"
  Dayloop = Dayloop + 1
Loop
Avatar billede tdaugaard Nybegynder
28. november 2000 - 02:13 #7
Men ellers en bedre måde:

Dayloop = 0
Daywrite = 0

Do Until Dayloop = 5
  Select Case Daywrite
    Case 1: Daywrite = 2
    Case 2: Daywrite = 3
    Case 3: Daywrite = 4
  End Select

  Document.Write \"<td>\" & Daywrite & \"</td>\"
  Dayloop = Dayloop + 1
Loop

MEEN! DayWrite vil aldrig skifte da DayWrite = 0 til at begynde med og der ikke er noget der sætter de til 1 eller tilbage til 1 når 4 er nået.
Avatar billede horsmark Nybegynder
28. november 2000 - 20:47 #8
Jeg er ved at bygge en kalender hvor baggrundsfarven i tabellerne skal skifte pr. dag så det er nemmere for brugeren at se... det virker nu og jeg gjorde følgende:

Her skal vises en måned med 31 dage MEN 5 uger frem!

        Dato = 1
        Datoloop = 0
        Datobaggrundloop = 1
       
    Do Until Datoloop = 35       
        Select Case Datobaggrundloop
      case 1: Document.Write \"<td bgcolor=eeeeee align=center>\" & dato & \"</td>\"
      case 2: Document.Write \"<td bgcolor=ffffff align=center>\" & dato & \"</td>\"
        End Select

        If Datobaggrundloop = 1 Then
      Datobaggrundloop = 2
      Else Datobaggrundloop = 1
      End If

      If Dato = 31 Then
      Dato = 0
      End If
      Dato = Dato + 1
      Datoloop = Datoloop + 1
    Loop

..og det kom jeg jo frem til vha. (igen?hæh) tdaugaard så point´ene må gå til ham
Avatar billede tdaugaard Nybegynder
28. november 2000 - 20:52 #9
*S*

Ikke for at rette på din kode, men for at gøre det nemmere for dig selv at læse den senere, så vil jeg forslå du skifter

        If Datobaggrundloop = 1 Then
      Datobaggrundloop = 2
      Else Datobaggrundloop = 1
      End If

      If Dato = 31 Then
      Dato = 0
      End If

ud med

      Datobaggrundloop = IIf(Datobaggrundloop=1, 2, 1)

      If Dato = 31 Then Dato = 0

IIf(Datobaggrundloop=1, 2, 1) gør nøjagtigt det samme som din 4 liniers If..Then..Else
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