/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
problemer med do - while løkke. skummelt p~
Fra : Rasmus Palm


Dato : 25-10-03 15:59

ok jeg skal lave en funktion der tager inputtet x og laver det om
til en værdi mellem FromPreset og TillPreset som også bliver
inputtet, funktionen virker bare virkeligt dårligt og virker
nogle gange og nogle gange ikke, tilsyneladende uden nogen form
for logik. kildekode nedenfor og eksempel i bunden:

Function ToPreset(x,FromPreset,TillPreset)

a=x
dif=Abs(TillPreset-FromPreset)

Do While a < FromPreset
a=(a+dif)
Loop


Do While a > TillPreset
a=(a-dif)
Loop

ToPreset=a

End Function

number = Request.Form("Number:")
fra = Request.Form("Fra:")
til = Request.Form("Til:")

response.write ToPreset(number,fra,til)

den fungerer således:

du inputter x, FromPreset og TillPreset
Hvis at x er mindre end FromPreset (mindste værdien den må være)
ligger den differensen mellem de to grænseværdier til x og
evaluerer det igen.

Hvis at x er større end TillPreset (max værdien den må være)
trækker den differensen mellem de to grænseværdier fra x og
evaluerer det igen.

efter de to løkker sætter den funktionsværdien til at være lig
med x

Hvis at x ikke er større eller mindre end grænseværdierne vil der
ikke blive gjort noget ved x da den ikke opfylder nogen af
betingelserne i løkkerne, og hvis at den opfylder en af løkkerne
vil løkken lave x om til et tal der ligger imelleM
grænseværdierne

eksempel:

x=10
FromPreset=50
TillPreset=100

a=10
dif=Abs(100-50) <=>
dif=50

Do While a < 50 (denne løkke eksekveres da 10 er mindre en 50)
a=(10+50) <=>
a=60

(da a nu ikke er mindre en 50 brydes løkken)
Loop


Do While a > 100 (Da 60 ikke er større end 100 eksekveres denne
løkke ikke)
a=(60-50)
Loop

( Funktionens værdi sættes til a som jo er 60)

ToPreset=a

End Function

Altså bør den skrive 60

Hvis man prøver scriptet kan man se at istedet for at skrive 60
sætter den sig fast i en eller anden løkke og fortsætter i al
uendelighed.

Jeg kan virkelig ikke se hvorfor. Er der nogle der kan forklare
det?

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Torben Brandt (25-10-2003)
Kommentar
Fra : Torben Brandt


Dato : 25-10-03 16:19

Rasmus Palm skrev:

> ok jeg skal lave en funktion der tager inputtet x og laver det om
> til en værdi mellem FromPreset og TillPreset som også bliver
> inputtet, funktionen virker bare virkeligt dårligt og virker
> nogle gange og nogle gange ikke, tilsyneladende uden nogen form
> for logik. kildekode nedenfor og eksempel i bunden:

> number = Request.Form("Number:")
> fra = Request.Form("Fra:")
> til = Request.Form("Til:")

Er der kolon i name-attributten i dine input-tags?
Er du sikker på at der kommer noget ind i number, fra og til-variablene?
Response.Write number & " " & fra & " " & til
Response.End

/Torben


Rasmus Palm (25-10-2003)
Kommentar
Fra : Rasmus Palm


Dato : 25-10-03 19:42

Egentlig får den ikke sit input fra en form men direkte fra en popup boks
da det i virkeligheden er et vbscript, jeg lavede bare lige om så at folk
ville forstå det.

Ja jeg er sikker på at den får input, jeg har også selv mistænkt det for at
være der den brød men jeg har testet op til flere gange og funktionen får
helt sikkert input

vbscriptet kan downloades på:
www.pissebillig.dk/function.zip

som i nok ved er vbscript og asp næsten det samme (det er de ikke men
sproger minder utroligt meget om hindanden, praktisk talt det samme)

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Torben Brandt (25-10-2003)
Kommentar
Fra : Torben Brandt


Dato : 25-10-03 20:20

Rasmus Palm skrev:
> Egentlig får den ikke sit input fra en form men direkte fra en popup boks
> da det i virkeligheden er et vbscript, jeg lavede bare lige om så at folk
> ville forstå det.
>
> Ja jeg er sikker på at den får input, jeg har også selv mistænkt det for at
> være der den brød men jeg har testet op til flere gange og funktionen får
> helt sikkert input

Problemet er at resultatet fra InputBox altid er en streng. Også selv om
den indeholder cifre. Dine sammenligninger bliver derfor underlige, især
da 'a' bliver laver om til et tal når du lægger et tal til, mens
'FromPreset' stadig er en streng.

Du skal derfor have:
number = CInt(InputBox("number:"))
og det samme for fra og til.

/Torben


Rasmus Palm (25-10-2003)
Kommentar
Fra : Rasmus Palm


Dato : 25-10-03 23:43

Genialt!

Mange tak, det virker perfekt nu.

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Søg
Reklame
Statistik
Spørgsmål : 177552
Tips : 31968
Nyheder : 719565
Indlæg : 6408849
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste