webForumDet fria alternativet

skapa funktion

ASP

4 svar · 305 visningar · startad av leancuisine

Medlem sedan jan. 2002160 inlägg
Frågan#1

Hej! Kan någon hjälpa mig på traven med det här? Jag vill skapa en funktion som utför nedanstående kod. Istället för att jag som nu skriver ut den 10 gånger (rubrik, stycke1 - stycke9). Koden är till för att stega igenom en tabell med bildinfo och lagra infon i variabler som hart namn beroende på var i layouten (placering) som bilden hör hemma.

Jag föreställer mig att det borde gå att skriva så här:
Case "Rubrik"
Call skapaBildVariabler ("rubrik_")
Case "Stycke 1"
Call skapaBildVariabler ("stycke1_")
...etc ...
End Select

-----

If not EmptyRs(RsImg) Then
		
			Select Case RsImg("Placering")
				Case "Rubrik"
					rubrik_imgID = ImgId
					rubrik_imgdescr = RsImg("ImageDescription")
					rubrik_imgbredd = RsImg("Width")
					rubrik_imghojd = RsImg("Height")
					rubrik_imgfotograf = RsImg("Fotograph")
					'Sätt ihop bildtexten
					rubrik_bildtext = ""
					If rubrik_imgdescr <> "" Then
						rubrik_bildtext = rubrik_bildtext & rubrik_imgdescr
					End if
					If rubrik_imgfotograf <> "" Then
						rubrik_bildtext = rubrik_bildtext & "Foto: " & rubrik_imgfotograf
					End if
	
				Case "Stycke 1"
					stycke1_imgID = ImgId
					stycke1_imgdescr = RsImg("ImageDescription")
					stycke1_imgbredd = RsImg("Width")
					stycke1_imghojd = RsImg("Height")
					stycke1_imgfotograf = RsImg("Fotograph")
					'Sätt ihop bildtexten
					stycke1_bildtext = ""
					If stycke1_imgdescr <> "" Then
						stycke1_bildtext = stycke1_bildtext & stycke1_imgdescr
					End if
					If stycke1_imgfotograf <> "" Then
						stycke1_bildtext = stycke1_bildtext & "Foto: " & stycke1_imgfotograf
					End if
			End Select
		End If

---

Tacksam för tips och hjälp... Problemet är hur man skapar (namnger) variabler inne i en funktion där namnen beror av den info man matar funktionen med. Har inga VBScript-böcker här hemma...

Medlem sedan juni 200032 967 inlägg
#2

Du kan inte skapa dynamiska variabelnamn i VBScript.

red: Jo, man kan faktiskt, men jag vet inte om jag tycker att det är en så bra idé. Kan du inte använda en array istället?

Dessutom: Det skulle vara bra om du inte använde [php]-taggen för asp-kod. Det försämrar bara läsbarheten eftersom inte färgkodningen stämmer.

Medlem sedan jan. 2002160 inlägg
#3

@nders skrev:

Du kan inte skapa dynamiska variabelnamn i VBScript.

red: Jo, man kan faktiskt, men jag vet inte om jag tycker att det är en så bra idé. Kan du inte använda en array istället?

Dessutom: Det skulle vara bra om du inte använde [php]-taggen för asp-kod. Det försämrar bara läsbarheten eftersom inte färgkodningen stämmer.

Hur skapar man dynamiska variabelnamn då? Och varför tycker du inte det är bra?

Jag måste erkänna att det står helt still i huvudet, vad skulle jag kunna göra för tjusig lösning med en array?

Ang färgkodningen, jag håller med, men trodde det var tänkt att PHP motsvarade code-taggar... Jag tar bort färkodningen...

Tack för ditt snabba svar förresten!

Medlem sedan juni 200032 967 inlägg
#4

leancuisine skrev:

Hur skapar man dynamiska variabelnamn då?

Det borde gå att göra typ så här:

Sub createVar(name, value)
Execute(name & "_graah=" & value)
End sub

Men det är mest en gissning.
Anledningen till att jag inte tycker att det är så bra är att koden har en förmåga att bli oöverskådlig, dessutom är det lite att äta prestanda att gå omvägen via eval()/execute().

Jag måste erkänna att det står helt still i huvudet, vad skulle jag kunna göra för tjusig lösning med en array?

Tjusig och tjusig... Skapa en array som innehåller lika många platser som antalet variabler du behöver. Bestäm dig för vad du vill lägga var, klart.

Ang färgkodningen, jag håller med, men trodde det var tänkt att PHP motsvarade code-taggar... Jag tar bort färkodningen...

Nu blev det ännu värre. Använd [kod]-taggar helst. ;)

Medlem sedan jan. 2002160 inlägg
#5

@nders skrev:

Nu blev det ännu värre. Använd [kod]-taggar helst. ;)

:e

Jag kunde inte hitta dem i "arsenalen" här på wF. Nu har jag lagt in dem för hand dock.

Ja, så pinsamt som det är, array-grejen kan jag inte riktigt visualisera i mitt inre, jag får åka in till kontoret och hämta min VB-bok och grunna på det här. Som det är nu skriver jag ut hela konkarongen, vilket i o f s går bra, men det känns lite primitivt och osnyggt.

Om du har lust att visa något exempel på hur du tänkt dig att array-grejen skulle kunna se ut, tveka inte. Jag är nyfiken...

304 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
169 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
170 ms — ändringar (db)