webForumDet fria alternativet

Blandade frågor

ASP

9 svar · 378 visningar · startad av voigtann1

Medlem sedan juni 20019 519 inlägg
Frågan#1

Om man skapar en funktion som:
function test(varde1,varde2)

och man vill lagra en array i varde1 eller "recset.getrows()" i varde1 i funktionen.... hur ska man göra... är det möjligt?

Andra frågan:
Om man har en array och man kör kanske tillåtna filer exempel:
gif,jpg,jpeg etc hur ska man skriva if satsen för att kontrollera alla värden i array:en..

mvh

Medlem sedan jan. 20032 285 inlägg
#2

1. Jo, det ska väl fungera? Kör den här kodsnutten så förstår du sägert hur man gör:

Function Func(arr())
  For i = 0 To UBound(arr)
    Func = Func & arr(i) & "<br>"
  Next
End Function

Response.Write(Func(Array("H", "e", "j")))

2. Vet inte om jag har förstått helt rätt, men är det kanske såhär du menar?

Function CheckArray(arr(), str)
  CheckArray = False
  strExt = Right(str, Len(str) - InStrRev(str, "."))

  For i = 0 To UBound(arr)
    If strExt = arr(i) Then CheckArray = True
  Next
End Function

If CheckArray(Array("gif", "jpg", "png"), "bild.gif") Then
  Response.Write("Giltig!")
Else
  Response.Write("Ogiltig...")
End If
Medlem sedan juni 200032 967 inlägg
#3
  1. Använd en byref-parameter så kan du använda värdet efter det att du kallat funktionen.
Function test(byref varde1, byval varde2)
....
varde1 = objRS.GetRows()
test = 1 ' bara returnera ett värde
End function

intVal = test(var1, var2)
' din array finns nu i var1

Fast nu vet jag ju inte om jag förstått frågan rätt. :-)

Mvh

Medlem sedan juni 20019 519 inlägg
#4

tyvärr sebbe fungerade det inte med:

SQL = "Select ID,sidnamn from PAGES"
Set recset = databas.execute(SQL)

if not recset.eof then
  ArrPages = recset.GetRows()
end if
recset.close : Set recset = nothing
Response.Write Func(ArrPages())

@nders.. jag vill gärna få recset.getrows() innan funktionen.. om du förstå

Medlem sedan juni 200032 967 inlägg
#5

voigtann1 skrev:

@nders.. jag vill gärna få recset.getrows() innan funktionen.. om du förstå

Nepp jag förstår inte vad du menar.

mvh

Medlem sedan juni 20019 519 inlägg
#6

jag vill att funktionen innehåller recset.getrows()... inte att ett värde säts getrows() "inne" i funktionen..

function test(varde1,varde2)
'varde1 kan vara array:n med getrows()
end function
Response.Write test(recset.getrows(),"@nders")
Medlem sedan juni 200032 967 inlägg
#7

voigtann1 skrev:

inte att ett värde säts getrows() "inne" i funktionen..

Varför skrev du att du ville göra det i funktionen då? Du får nog försöka vara lite tydligare med vad du vill, min herre. ;-)

Du kan absolut skicka in en array som argument till en funktion. Vad är problemet?

Medlem sedan juni 20019 519 inlägg
#8

när jag försöker:

SQL = "Select ID,sidnamn from PAGES"
Set recset = databas.execute(SQL)

if not recset.eof then
  ArrPages = recset.GetRows()
end if
recset.close : Set recset = nothing
[b]Response.Write Func(ArrPages())[/b]

får jag bara felet:
Körningsfel i Microsoft VBScript (0x800A0009)
Felaktigt matrisindex: 'ArrPages'

felet är den tjocka texten

Medlem sedan juni 200032 967 inlägg
#9

Prova att ta bort parenteserna efter ArrPages i funktionsanropet.

Medlem sedan juni 20019 519 inlägg
#10

då får jag felet på

    Func = Func & arr(i) & "<br>"

... men det är ju helt okej...eftersom det ska vara typ arr(1,i) :e
fungera nu :e tackar @nders och tackar Sebbe!

262 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
118 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
124 ms — ändringar (db)