Just nu gör jag typ så här för att hitta en string: Något liknande bode väl funka... Den här biten verkar inte fungera för mig. Får du felmeddelande när du kör SomeArray(iLoop) = "" eller vad händer? Jag får inga felmeddelanden. Bara det att värdet är kvar som precis innan. För det är ett val som besökarna har gjort på sidor innan som måste följa med överallt. Borde funka med: Den där ser ut att fungera. Men det blir problem då jag loopar igenom flera ggr. Denna filterar strängen vid utskriften men tas inte bort ur själva sessionsvariablen. Jag föreslår att du tömmer din sessionsvariabel till en vanlig array och dödar sessionsvariabeln. Kör sedan genom den vanliga arrayen enligt mitt tidiagre kodexempel. När du kört genom så tömmer du tillbaka värdena från den nya arrayen till en ny sessionsvariabel. Här får du en lösning som du kan klistra in och modifiera att passa ditt. Funkar det här?Ta bort värde i en array
For iLoop = LBound(SomeArray) to UBound(SomeArray)
If CStr(SomeArray(iLoop)) = CStr(SomeString) then
--och lite kod
End If
Next
Hur gör jag om jag vill ta bort det värdet som jag hittar?
Sv: Ta bort värde i en array
Dim iLoop, iOut
Dim SomeArray(5)
Dim SomeString
SomeString = "C"
SomeArray(0) = "A"
SomeArray(1) = "B"
SomeArray(2) = "C"
SomeArray(3) = "D"
SomeArray(4) = "E"
For iLoop = LBound(SomeArray) to UBound(SomeArray)
If CStr(SomeArray(iLoop)) = CStr(SomeString) then
SomeArray(iLoop) = ""
Dim SomeNewArray()
ReDim SomeNewArray(UBound(SomeArray) - 1)
Dim iLoop2, i
For iLoop2 = LBound(SomeArray) to UBound(SomeArray)
If CStr(SomeArray(iLoop2)) <> "" Then
SomeNewArray(i) = SomeArray(iLoop2)
i = i + 1
End If
Next
End If
Next
...och i BODY...
<body>
<%
For iOut = LBound(SomeNewArray) To UBound(SomeNewArray)
Response.Write(SomeNewArray(iOut)) & "<br>"
Next
%>
</body>
Du får modifiera efter eget syfte men detta funkar ivf.
PeterSv:Ta bort värde i en array
SomeArray(iLoop) = ""
Finns det nått annat sätt?
Har testat den utan lyckat resultat:
<code>
Response.Write Session("searchList")(iLoop)
Session("searchList")(iLoop) = ""
Response.Write Session("searchList")(iLoop)
</code>
Sv: Ta bort värde i en array
Sv:Ta bort värde i en array
For iLoop = LBound(Session("searchList")) to UBound(Session("searchList"))
If CStr(Session("searchList")(iLoop)) = CStr(selectedProjects(y)) then
Response.Write Session("searchList")(iLoop)
Session("searchList")(iLoop) = EMPTY
Response.Write Session("searchList")(iLoop)
End If
Next
Sv:Ta bort värde i en array
Sv:Ta bort värde i en array
Sv:Ta bort värde i en array
DO UNTIL search.EOF
projidList = projidList & "," & search("projid")
search.MoveNext
LOOP
Session("searchList") = SPLIT(projidList,",")
Sv: Ta bort värde i en array
<%
SomeArray= Filter(SomeArray, SomeString, False, vbTextCompare)
%>
Sv:Ta bort värde i en array
For iLoop = LBound(Session("searchList")) to UBound(Session("searchList"))
If CStr(Session("searchList")(iLoop)) = CStr(selectedProjects(y)) then
Session("searchList")= Filter(Session("searchList"), selectedProjects(y), False, vbTextCompare)
End If
Next
"Subscript out of range: 'iLoop' "
På "If CStr..."-raden
Sv: Ta bort värde i en array
Sv: Ta bort värde i en array
Session("searchList") = SomeNewArraySv:Ta bort värde i en array
Den är inte optimerad eller snygg. Har bara tittat efter en lösning på ditt problem. Den är baserad på mitt förslag till dig ang. att tömma sessionsvaribeln till en array och tillbaka till en ny sessionsvariabel igen.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<%
Dim SomeStringsFromAFormSomeWhere
SomeStringsFromAFormSomeWhere = "Jag,heter,Peter"
Session("searchList") = Split(SomeStringsFromAFormSomeWhere,",")
Dim iLoop, iPrint
Dim SomeArray()
Dim SomeString
SomeString = "heter"
ReDim SomeArray(Session.Contents.Count + 1)
For iLoop = 0 To Session.Contents.Count + 1
SomeArray(iLoop) = Session("searchList")(iLoop)
Next
Session.Abandon()
For iLoop = LBound(SomeArray) to UBound(SomeArray)
If CStr(SomeArray(iLoop)) = CStr(SomeString) then
SomeArray(iLoop) = EMPTY
Dim SomeNewArray()
ReDim SomeNewArray(UBound(SomeArray) - 1)
Dim iLoop2
Dim i
For iLoop2 = LBound(SomeArray) to UBound(SomeArray)
If CStr(SomeArray(iLoop2)) <> "" Then
SomeNewArray(i) = SomeArray(iLoop2)
i = i + 1
End If
Next
End If
Next
Session("updatedsearchList") = SomeNewArray
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<%
For iPrint = LBound(Session("updatedsearchList")) To UBound(Session("updatedsearchList"))
Response.Write(Session("updatedsearchList")(iPrint)) & "<br>"
Next
%>
</body>
</html>Sv: Ta bort värde i en array
<code>
Dim MyArray
'Hämtar array från sessionsvariabel
MyArray = Session("searchList")
'Tar bort värde från array
MyArray = Filter(MyArray, selectedProjects(y), False, vbTextCompare)
'Sparar array i sessionsvariabel
Session("searchList") = MyArray
</code>