webForumDet fria alternativet

Split och left problem!

2 svar · 217 visningar · startad av znyder

znyderMedlem sedan dec. 2002172 inlägg
#1

Hej, nu har jag stött på ett irriterande problem, varför vet jag inte...

Såhär är det, denna kod används:

relationer = Split(RStemp("relation"),",")
For i = 0 To Ubound(relationer)
Response.Write hamta_titel(relationer(i)) & left(relationer(i),1)
Next

jag har textsträngar som: s1181, p1281, s2392

där s står för sequel och p för prequel, och nummrena efter är ID nummer. Så.. i HAMTA_TITEL hämtar jag titel som har det ID nummret och sen vill jag skriva ut P och S efter, men den skriver bara ut den första....

Här är funktionen:

Function hamta_titel(temp_titel)
temp_titel = temp_titel & ""
temp_titel = Replace(temp_titel,"s","")
temp_titel = Replace(temp_titel,"p","")

SET RStemp3 = MinCon.Execute("SELECT * FROM spelen WHERE ID=" & temp_titel & "")
IF NOT RStemp3.EOF THEN
hamta_titel = "<B>" & RStemp3("titel") & "</B><BR>"
END IF

End Function

Någon som vet varför det strular??

PoffeMedlem sedan apr. 20022 743 inlägg
#2
Response.Write hamta_titel([b]Trim([/b]relationer(i)[b])[/b]) & left([b]Trim([/b]relationer(i)[b])[/b],1)
GuffaMedlem sedan juni 2004533 inlägg
#3

I funktionen så plockar du ju bort "p" och "s" ifrån värdet, då finns det ju inte kvar när du ska skriva ut det.

När du ändrar på värdet av parametern i funktionen så bör du deklarera parametern som ByVal, annars så kommer du att ändra på värdet som du skickar in i funktionen.

Function hamta_titel(ByVal temp_titel)

Det här är ett väldigt vanligt fel på funktioner skrivna i VBScript. Det är inte många som är medvetna om att det är ByRef som är standard för funktionsparametrar.

137 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)