/ 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
Funktion og Sub
Fra : Ryan


Dato : 13-05-03 23:39

Hej.
Jeg har efterhånden fået lavet en meget lang og enormt uoverskuelig kode.
Så nu har jeg pludselig fået interesse for brugen af funktioner og 'sub'.

Hvad er forskellen på disse to?
Og hvis man laver en funktion som dette:
Function funktionsnavn(variabelnavn)
a = variabelnavn +1
b= variabelnavn -1
End Function
Er det så muligt, at at få både a og b ud som hver sin variabel?

--
Ryan



 
 
Jesper Stocholm (14-05-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 14-05-03 07:12

Ryan wrote :


> Jeg har efterhånden fået lavet en meget lang og enormt uoverskuelig
> kode. Så nu har jeg pludselig fået interesse for brugen af funktioner
> og 'sub'.
>
> Hvad er forskellen på disse to?

En sub er en runtine, hvorimod en function er en funktion, der
returnerer en værdi.

> Og hvis man laver en funktion som dette:
> Function funktionsnavn(variabelnavn)
> a = variabelnavn +1
> b= variabelnavn -1
> End Function
> Er det så muligt, at at få både a og b ud som hver sin variabel?

Nej ... ikke umiddelbart. Du kan returnere enten den ene eller den anden
fx

function doStuff
   dim a,b
   a = 1
   b = a+1
   doStuff = b
end function

Response.write doStuff

I .Net kan en metode returnere et array (og alt muligt andet), men jeg
er usikker på, om det kan lade sig gøre i alm ASP.



--
Jesper Stocholm - http://stocholm.dk
if you are competing with the darknet, you must compete on the darknet's
own terms: that is convenience and low cost rather than additional
security. ( http://crypto.stanford.edu/DRM2002/darknet5.doc )

Thomas Due (14-05-2003)
Kommentar
Fra : Thomas Due


Dato : 14-05-03 07:24

Jesper Stocholm wrote:

> > Er det så muligt, at at få både a og b ud som hver sin variabel?
>
> Nej ... ikke umiddelbart. Du kan returnere enten den ene eller den
> anden fx
[SNIP]
> I .Net kan en metode returnere et array (og alt muligt andet), men jeg
> er usikker på, om det kan lade sig gøre i alm ASP.
>
>

Der findes ikke var parametre i ASP?

--
Thomas Due
Software Developer
Scanvaegt Nordic A/S
XanaNews: 1.15.1.1

Jesper Stocholm (14-05-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 14-05-03 07:36

Thomas Due wrote :

> Jesper Stocholm wrote:
>
>> > Er det så muligt, at at få både a og b ud som hver sin variabel?
>>
>> Nej ... ikke umiddelbart. Du kan returnere enten den ene eller den
>> anden fx
> [SNIP]
>> I .Net kan en metode returnere et array (og alt muligt andet), men jeg
>> er usikker på, om det kan lade sig gøre i alm ASP.
>>
>>
>
> Der findes ikke var parametre i ASP?

Om der findes parametre .. ? altså om man kan gøre dette ?

function doStuff(withthis)
   doStuff = withthis
end function

Response.write doStuff("Jesper")

?

Det kan man godt ... :)

--
Jesper Stocholm - www.stocholm.dk

Giv et bud på et nyt design til Polyteknisk Forenings hjemmeside.
Se konkurrencen på www.pf.dtu.dk/webdesign

Thomas Due (14-05-2003)
Kommentar
Fra : Thomas Due


Dato : 14-05-03 08:03

Jesper Stocholm wrote:

> Om der findes parametre .. ? altså om man kan gøre dette ?
>
> function doStuff(withthis)
>    doStuff = withthis
> end function
>
> Response.write doStuff("Jesper")

Nej, ikke helt. Jeg er godt klar over at man sende parametre ind i en
sub og en funktion. Det jeg mente var
"var" parametre. Altså parametre som sendes ind i funktionen, ændres og
sendes ud igen. F.eks.

a = 1

function ChangeA(VarA)
VarA = 2
ChangeA = VarA
end function

response.write a ' resultat: a = 1
response.write ChangeA(a) ' resultat: a = 2
response.write a ' resultat: a = 2

--
Thomas Due
Software Developer
Scanvaegt Nordic A/S
Posted with XanaNews 1.15.2.1

Jesper Stocholm (14-05-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 14-05-03 08:05

Thomas Due wrote :

> Jesper Stocholm wrote:
>
>> Om der findes parametre .. ? altså om man kan gøre dette ?
>>
>> function doStuff(withthis)
>> doStuff = withthis
>> end function
>>
>> Response.write doStuff("Jesper")
>
> Nej, ikke helt. Jeg er godt klar over at man sende parametre ind i en
> sub og en funktion. Det jeg mente var
> "var" parametre. Altså parametre som sendes ind i funktionen, ændres og
> sendes ud igen. F.eks.
>
> a = 1
>
> function ChangeA(VarA)
> VarA = 2
> ChangeA = VarA
> end function
>
> response.write a ' resultat: a = 1
> response.write ChangeA(a) ' resultat: a = 2
> response.write a ' resultat: a = 2

Nu er ASP/VBs jo typefrit/løst, men jeg skal ikke kunne sige, om det kan
lade sig gøre. Du kunne jo prøve ad :) Som et VBscript tager det jo ikke
lang tid at teste.



--
Jesper Stocholm - http://stocholm.dk
www.asp-faq.dk: FAQ for dk.edb.internet.webdesign.serverside.asp
www.usenet.dk/netikette/citatteknik.html: Skriv under det du svarer på
Svar venligt til gruppen og ikke til mig privat !

Ryan Dahl (14-05-2003)
Kommentar
Fra : Ryan Dahl


Dato : 14-05-03 15:51

On Wed, 14 May 2003 07:05:09 +0000 (UTC), Jesper Stocholm
<j@stocholm.invalid> wrote:

>Thomas Due wrote :
>
>> "var" parametre. Altså parametre som sendes ind i funktionen, ændres og
>> sendes ud igen. F.eks.
>>
>> a = 1
>>
>> function ChangeA(VarA)
>> VarA = 2
>> ChangeA = VarA
>> end function
>>
>> response.write a ' resultat: a = 1
>> response.write ChangeA(a) ' resultat: a = 2
>> response.write a ' resultat: a = 2
>

Hej,

jeg har lige et par (forhåbentlig nyttige) kommentarer...

1. Alm. ASP kan sagtens returnere flere værdier vha. en array. Den kan
også være multidimensional hvis man har det behov.

2. Brug evt. byRef foran parametrene, når man kalder en funktion. Det
medfører dog at parametrene (variblerne i den kaldende funktion)
bliver ændret i takt med at man manipulerer dem i sin funktion. Hvis
man benytter byRef kan man altså ændre flere variable på én gang.

mvh
Ryan



Torben Brandt (15-05-2003)
Kommentar
Fra : Torben Brandt


Dato : 15-05-03 00:28

Ryan Dahl wrote:
>>Thomas Due wrote :
>>
>>
>>>"var" parametre. Altså parametre som sendes ind i funktionen, ændres og
>>>sendes ud igen. F.eks.
>>>
>>>a = 1
>>>
>>>function ChangeA(VarA)
>>> VarA = 2
>>> ChangeA = VarA
>>>end function
>>>
>>>response.write a ' resultat: a = 1
>>>response.write ChangeA(a) ' resultat: a = 2
>>>response.write a ' resultat: a = 2
>>
>
> 2. Brug evt. byRef foran parametrene, når man kalder en funktion. Det
> medfører dog at parametrene (variblerne i den kaldende funktion)
> bliver ændret i takt med at man manipulerer dem i sin funktion. Hvis
> man benytter byRef kan man altså ændre flere variable på én gang.

Det modsatte af ByRef er ByVal.
Iflg ovenstående eksempel ser det ud til at ByRef er default, hvis man
ikke skriver "function ChangeA(ByVal VarA)"

/Torben


Ryan (15-05-2003)
Kommentar
Fra : Ryan


Dato : 15-05-03 11:56

> 1. Alm. ASP kan sagtens returnere flere værdier vha. en array. Den kan
> også være multidimensional hvis man har det behov.

Det har jeg også tænkt på at gøre, men det havde jo været lidt smartere,
hvis man kunne returnere mere end én værdi, så man ikke senere skal til at
splitte resultatet, for at få de værdier man skal bruge.

--
Ryan



Jesper Stocholm (15-05-2003)
Kommentar
Fra : Jesper Stocholm


Dato : 15-05-03 14:03

Ryan wrote :

>> 1. Alm. ASP kan sagtens returnere flere værdier vha. en array. Den
>> kan også være multidimensional hvis man har det behov.
>
> Det har jeg også tænkt på at gøre, men det havde jo været lidt
> smartere, hvis man kunne returnere mere end én værdi, så man ikke
> senere skal til at splitte resultatet, for at få de værdier man skal
> bruge.

så kan du jo gøre som det bliver foreslået - nemlig at returnere et array.
I øvrigt kan jeg ikke lige på stående fod komme i tanke om sprog, hvor en
metode kan returnere to værdier - hvis de ikke er i et array.



--
Jesper Stocholm - http://stocholm.dk

Svar til gruppen og ikke til mig privat !
Skriv under det du svarer på - www.usenet.dk/netikette/citatteknik.html

Ryan Dahl (16-05-2003)
Kommentar
Fra : Ryan Dahl


Dato : 16-05-03 08:24

On Thu, 15 May 2003 12:56:05 +0200, "Ryan" <ryan@NOSPAM.dk> wrote:

>Det har jeg også tænkt på at gøre, men det havde jo været lidt smartere,
>hvis man kunne returnere mere end én værdi, så man ikke senere skal til at
>splitte resultatet, for at få de værdier man skal bruge.

Hej,
som nævnt kunne man også bruge byRef. Du får lige et eksempel...

<%
public sub Omregn(byref a, byref b)
   a = a + 1
   b = b + 3
end sub

dim tal1, tal2
tal1 = 1
tal2 = 1

call Omregn(tal1, tal2)

Response.Write("Tal 1 er nu: " & tal1 & ", tal 2 er: " & tal2)
%>

mvh
Ryan


Ryan (16-05-2003)
Kommentar
Fra : Ryan


Dato : 16-05-03 14:37

> som nævnt kunne man også bruge byRef. Du får lige et eksempel...

Tak for det. Det er vist noget jeg kan bruge

--
Ryan



Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste