Avatar billede tblaster Nybegynder
24. oktober 2003 - 13:48 Der er 11 kommentarer og
1 løsning

Undersøge om der findes en session der er et interval mindre

Hejsa

Jeg har brug for lidt hjælp. Jeg har en række sessions i stil med følgende:
Session("Tid-1200") = "True"
Session("Tid-1230") = "True"

Jeg starter så med at undersøge om min session er true og hvis den er det skal den udføre en funktion:

If Session("Tid-" & TTime & "") = "True" Then
  Bla bla
End If

Det er denne funktion jeg skal have lidt hjælp til. For er overstående true skla jeg have undersøgt om der findes en session som har en mindre tids værdi og som er true. Det vil sige at hvis jeg har fået true på følgende:
Session("Tid-1200")
Så skal jeg have undersøgt om der findes en
Session("Tid-1159") eller Session("Tid-1158") osv. som er true.

Jeg skal have undersøgt ned til et tidsinterval som ligger derfra. Denne værdi ligger i en variabel, Interval. Er mit interval 30 skla jeg altså have undersøgt alle fra:
Session("Tid-1159") til Session("Tid-1131") og i den række følge, altså ikke fra Session("Tid-1131") til Session("Tid-1159").

Hvordan klare jeg lige den?

Hvis I ikke forstår hvad jeg mener så skriv venligt og jeg skal prøve at uddybe det!
Avatar billede danq Nybegynder
24. oktober 2003 - 18:08 #1
Ved ikke om jeg fatter dig helt men.. måske kan dette hjælpe dig
For i = 1200 to 1
  tempvar = "Tid-" & i
  If Session(tempvar) = "True" then
    Bla Bla
  End if
Next
Håber det hjælper, ellers må du lige skrive igen..
MVH Danq
Avatar billede danq Nybegynder
24. oktober 2003 - 18:09 #2
ups du skal lige huske at skrive en linje mellem "End if" og "Next"
det skal se sådan her ud:
  End if
  i = i - 1
Next
Avatar billede tblaster Nybegynder
27. oktober 2003 - 08:40 #3
Jeg kan allerede nu se at der er et problem med overstående. Jeg har min tid i en varriabel, TTime, altså skal jeg undersøge på denne måde:
For i = TTime to x
  Bla bla
  i = i - 1
Next
Det gør at hvis TTime = 1200 så vil den undersøge alle tal fra 1200 til 1161 hvilket den ikke skal. Den skal starter med at undersøge tallne fra 1160 i overstående tilfælde.

Her er så også et problem med x da x jo skal være min nuværende tid minus mit interval, altså x = TTime - Interval. Men har jeg igen en TTime på 1200 og et interval på 30 så undersøger den fra 1200 til 1170 og ikke fra 1160 til 1131. Kan du se hvad jeg mener. Systemet skal funger så TTime kan have et minutantal fra mellem 0 og 59 og at Intervallet kan ligge mellem 1 og 60.
Avatar billede tblaster Nybegynder
27. oktober 2003 - 09:16 #4
Jeg tror jeg har fundet en måde at komme omkring det jeg beskrev i overstående kommentar:

        If Len(TTime) = 3 Then
            Tid = 0 & TTime
        Else
            Tid = TTime
        End If
       
        If Right(Tid, 2) = "00" Then
            NyTid = Left(Tid, 2) - 1 & 60
        Else
            NyTid = Tid
        End If
       
        For i = NyTid to (NyTid - Interval + 1)
            If Session("Tid-" & i) = "True" then
                Tid                 = Left(NyTid, 2) & ":" & Right(NyTid, 2)
                SkrivLinie Tid, strKommentar
              End if
            i = i - 1
        Next
       
        For i = NyTid to (NyTid + Interval - 1)
            If Session("Tid-" & i) = "True" then
                Tid                 = Left(NyTid, 2) & ":" & Right(NyTid, 2)
                SkrivLinie Tid, strKommentar
              End if
            i = i + 1
        Next

Derudover så jeg tilføjet en del der gerne skulle gøre at den også undersøger om der er nogen session i intervallet fremad der er true. Men jeg syntes ikke den udskriver det den skal. Den melder heller ikke nogen fejl. Er der nogen der kan se om der er noget galt med min kode ...
Avatar billede tblaster Nybegynder
27. oktober 2003 - 09:18 #5
Jeg ved at jeg har et par sessions med følgende tal som den ikke udskriver:
2000
2001
2002
2003
2004
Avatar billede tblaster Nybegynder
27. oktober 2003 - 09:19 #6
Rettelse ... 2000 udskriver den fint nok og det er også derfor den gerne skulle gå videre og undersøge om den skal udskrive noget, altså 2001 - 2004
Avatar billede tblaster Nybegynder
27. oktober 2003 - 09:41 #7
Sikke noget l*** jeg fik lavet der ... det gik lige lidt for hurtigt. Den første For skal natruligvis se således ud:

        For i = (NyTid - Interval + 1) to (NyTid - 1)
            If Session("Tid-" & i) = "True" Then
                Tid                 = Left(i, 2) & ":" & Right(i, 2)
                SkrivLinie Tid, strKommentar
              End if
        Next

Den virker også fint. Kigger lige på nr 2 og ser om jeg skal have hjælp til den!
Avatar billede danq Nybegynder
27. oktober 2003 - 10:11 #8
ok jeg fik ikke lige rigtig opfattet om det jeg skrev hjalp dig, men endelig skriv hvis du skal bruge mere.. :P
Avatar billede tblaster Nybegynder
27. oktober 2003 - 10:13 #9
Den sidste For har jeg rettet til følgende:

        For i = (Tid + 1) to (Tid + Interval - 1)
            If Session("Tid-" & i) = "True" then
                Tiden                 = Left(i, 2) & ":" & Right(i, 2)
                SkrivLinie Tiden, strKommentar
            End if
        Next

Så virker det næsten, men ... ja der er altid en men ... er min sluttid eksempelvis 20:04 skal den slutte med at skrive 20:00 og så 20:04 men det gør den ikke. Den skrive:
19:30
20:04
20:00

Hvorfor gør den det?
Avatar billede danq Nybegynder
27. oktober 2003 - 10:47 #10
hmm fatter ikke helt.. kan du ikke prøve at poste hele din kode?
Avatar billede tblaster Nybegynder
27. oktober 2003 - 10:54 #11
2 sek ... jeg tror jeg har fået fikset det ... nu har jeg vidst lige kun et problem tilbage ... skal lige se omd et er et problem jeg skla have hjælp til ...
Avatar billede tblaster Nybegynder
27. oktober 2003 - 11:04 #12
Jeg fik det sku til at virke ... whee! Sikke en omgang! Tak for start tippet det satte gang i hele tanke processen!
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