webForumDet fria alternativet

Skicka variablar mellan subbar

ASP

8 svar · 286 visningar · startad av doggelito

Medlem sedan juni 20003 076 inlägg
Frågan#1

Halåjs!
Fundering: jag har en sub som skapar ett antal variablar, dessa
vill jag föra över till en annan sub som sedan skriver ut dessa,
hur görs detta på effektivaste sätt?
Jag kommer bara på globala variablar men det är ju inte rätt, hur gör man?
(att man aldrig lär sig :OO )


Private Sub get_dates
datum1 = bla
datum2 = bla2
...
End Sub

Public Sub write_dates()
response.write bla bla bla & datum1
response.write bla bla bla & datum2
...
End Sub
Medlem sedan dec. 200012 464 inlägg
#2

Parametrar

Public Sub write_dates(datum1,datum2)
response.write bla bla bla & datum1
response.write bla bla bla & datum2
...
End Sub

Det här är inte en effektivitetsfråga utan mer om hur man strukturerar kod som blir modulariserad och lättare att underhålla.

Medlem sedan juni 20003 076 inlägg
#3

Jo, men hur får jag ut datum1 och datum2 från den första till den andra som parametrar utan att dimma dem utanför subben?
Är det bättre att skapa ett class objekt med dimmarna samt subbarna i (exempel 1)?
Eller borde jag dela upp första subben i flera funktioner och sen hämta in dessa i subben (exempel 2)

Class dates
Dim datum1, datum2

Private Sub get_dates
datum1 = bla
datum2 = bla2
...
End Sub

Public Sub write_dates()
response.write bla bla bla & datum1
response.write bla bla bla & datum2
...
End Sub

End Class
Private Function datum
datum1 = date()
Set datum = datum1
End Function

Public Sub write_dates()
Set datum1 = datum
response.write bla bla bla & datum1
response.write bla bla bla & datum2
...
End Sub
Medlem sedan maj 20018 027 inlägg
#4

Jo, men hur får jag ut datum1 och datum2 från den första till den andra som parametrar utan att dimma dem utanför subben?

Så här tex:

Private Sub get_dates
datum1 = bla
datum2 = bla2

[b]write_dates(datum1,datum2)[/b]

End Sub

Public Sub write_dates(datum1,datum2)
response.write bla bla bla & datum1
response.write bla bla bla & datum2
...
End Sub
Medlem sedan juni 20003 076 inlägg
#5

Det går inge bra för mig.
Hur borde jag göra rent generellt?
I nuläget har jag alltså en sub där jag har div datumvariablar (ca 10 st)
I den subben finns inga response eller dyligt pga. att den används till flera sidor med olika innehåll.
Den andra subben ska presentera datat från datumvariablarna.
Så här försöker jag nu ungefär, men det går som sagt inge bra!

Private Sub get_dates()
datum1 = bla
datum2 = bla2
...
End Sub

Public Sub write_dates()
call get_dates()
response.write bla bla bla & datum1
response.write bla bla bla & datum2
...
End Sub

call write_dates()

Jag förstår inte hur jag med parametrar får variablarna från sub 1 att skrivas ut i sub 2.

Medlem sedan juni 200032 967 inlägg
#6

Antingen 'dimmar' du variablerna globalt, eller så skickar du dem som parametrar från den ena subben till den andra enligt UlfTs exempel.

Mvh,

Medlem sedan maj 20018 027 inlägg
#7

Titta noga på denna deklaration:

Public Sub write_dates([b]datum1,datum2[/b])
response.write bla bla bla & datum1
response.write bla bla bla & datum2
...
End Sub

Kan du se att det har deklarerats variabler inne i funktionshuvudet? (de i fetstil) Därmed har du deklarerat att variabler ska skickas med funktionsanropet. Det gör du på följande vis:

write_dates([b]ettDatum, ettTillDatum[/b])
Medlem sedan juni 20003 076 inlägg
#8

Är det jag som är dum i huvvet eller är det ni som inte fattar! :q
Ska´re va så här alltså???????

<%
option explicit
Private Sub get_dates()
datum1 = "2002-08-18"
datum2 = "2002-08-19"
End Sub

Public Sub write_dates(datum1, datum2)
call get_dates()
response.write "datum 1:" & datum1
response.write "datum 2:" & datum2
End Sub

call write_dates(datum1, datum2)
%>

Det funkar i alla fall inte. :x

Medlem sedan juni 200032 967 inlägg
#9

Om du inte deklarerar dina variabler utanför subben kan du inte använda dem någon annanstans än just i den subben, om du inte skickar de från subben som parametrar till någon annan sub eller funktion.

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
125 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)