webForumDet fria alternativet

Göra om kod till sub?

ASP

4 svar · 197 visningar · startad av trexter.com

Medlem sedan apr. 20021 203 inlägg
Frågan#1

Jag har aldrig använt det förrut men tänkte att det är på tiden att börja "kapsla in" koden lite...
Jag har gjort början på ett enkelt omröstningsscript (fritt fram att ta om ni vill) och vill nu göra en subrutin av det.
Hur gör jag? Hur kallar jag den? Var hamnar det genererade reslutatet? Där jag kallat den eller där den ligger?

<%
' Plockar ut frågan till omröstningen
strSQL = "SELECT TOP 1 * From Poll_questions ORDER BY id DESC"			
Set RecSet = Connect.Execute(strSQL)
' Om det finns frågor i databasen	
IF NOT RecSet.EOF THEN
	' Tanka över posterna i RecordSetet till en array
	arrRecords = RecSet.GetRows
	' Stänger RecordSetet eftersom det inte behövs (infon finns i arrayen).
	RecSet.Close
	Set RecSet = Nothing
	'IF ISArray(arrRecords) THEN <-- kan man dubbelkolla med men behövs ej...
		' Plockar ut svaren som hör till frågan (genom arrayen)
		strSQL = "SELECT * From Poll_answers WHERE attachment = " & arrRecords(0,0) & " ORDER BY name"
		Set RecSet = Connect.Execute(strSQL)
		If NOT RecSet.EOF Then
		arrRecords2 = RecSet.GetRows
		RecSet.Close
		Set RecSet = Nothing
		' Skriver ut frågan.
		Response.Write arrRecords(1,0) & "<br>"
		' Summerar summan av hur många gggr. folk röstat på de olika svaren.
		summan = arrRecords2(2,0) + arrRecords2(2,1)
		' Loopar igenom arrayen med info, 2 i slutet står för att den är tvådimensionell.
		For I=0 to UBound(arrRecords2,2)
		%>
			<a href="rosta.asp?question=<%=ID%>&answer=<%=arrRecords2(0,I)%>"><%=arrRecords2(1,I)%></a>
			<br />
			<img src="grafik/design_ritat/stapel1.gif" border="0" width="<%=Round(300*(arrRecords2(2,I) / summan), 0)%>" height="2" />
			<br />
			<%=Round(100*(arrRecords2(2,I) / summan), 0)%>%
			<br />
			<%
		Next
		Response.Write "Antal svar:" & summan	
		Else
		Response.Write "Fel uppstod"
		End IF		
Else
	Response.Write "Finns inga poster i databasen."
	RecSet.Close
	Set RecSet = Nothing
End If
		%>

Ser koden för övrigt bra ut?

:)

Medlem sedan aug. 2002207 inlägg
#2

Du använder en funktion genom att först skriva koden du vill använda i funktionen:

Function MyFunction
  response.write("Detta är min funktion!")
  ' Övrig kod!
End Function

Sedan anropar du koden på ett helt annat ställe genom att skriva:

Call MyFunction

På så sätt kan man "återanvända" kod och skapa renare strukturer.

Medlem sedan apr. 20021 203 inlägg
#3

Ok.. men jag vill inte göra en funktion. En subrutin. Gör jag på samma sätt? *testar*

:)

Medlem sedan apr. 20021 203 inlägg
#4

.

Medlem sedan mars 20015 287 inlägg
#5

Denniz PoP skrev:

Du använder en funktion genom att först skriva koden du vill använda i funktionen:

Function MyFunction
  response.write("Detta är min funktion!")
  ' Övrig kod!
End Function

Sedan anropar du koden på ett helt annat ställe genom att skriva:

Call MyFunction

På så sätt kan man "återanvända" kod och skapa renare strukturer.

Skulle vilja säga att det där var ett utmärkt exempel på just en sub.
Ändra till:

Sub MySub(namn)
  response.write "Detta är min funktion!" & namn
  ' Övrig kod!
End Sub
Call MySub("Nisse")

Om det ska vara en funktion så skall den returnera något, typ:

Function MyFunction(namn)
  MyFunction= "Detta är min funktion!" & namn
  ' Övrig kod!
End Function

response.write MyFunction("Nisse")

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