Kolla ovan så ser du.
Tilldela namn på varje värde i array
27 svar · 1 127 visningar · startad av bigsky · sida 2 av 2
Frågan, av bigsky
Med anledning av tråd <http://www.webforum.nu/showthread.php?s=&threadid=125472&forumid=22> dim str, arr, i str = "1000 41 770 2002-10-18 4 0 0 0 0 0 0 0 5 0 0 {1000/1000-sph.jpg,1000/1000-b.jpg,1000/1000-h.jpg,1000/1000-m.jpg,1000/1000-rs.jpg,1000/1000-sp.jpg}" str = replace(str, "{", " ") str = replace(str, "}", " ") str = replace(str, " ", ",") arr = split(str, ",") for i = 0 to ubound
Läs frågan i sin helhet →Vad har hänt med strängen då? Det ser inte ut som att den innehåller en {}-lista med bilder som den gjorde tidigare i tråden?
Om inte det finns med i strängen kan du heller inte splitta på det.
Annars har du missat lite i koden:
For i = 0 To UBound(arr)
arr2 = Split(Replace(Split(arr(i), "{")(0), vbCrlf, ""), "|")
[b]iTemp = CLng(arr2(0))[/b]
If iTemp =< 99 Then
strFolder = 0
ElseIf iTemp =< 199 Then
strFolder = 100
ElseIf iTemp =< 299 Then
strFolder = 200
[b]End if[/b]
Next
edit: om du ska jämföra med tal måste du se till att du jämför ett tal med ett tal, därav Clng-konverteringen.
Jag ska se om jag har möjlighet att testa koden senare.
Alltså, såhär ser hela koden ut.
<% strBaseUrl = "http://www.template-help.com"
strUrl = strBaseUrl & "/webapi/templates_screenshots4.php?category=10&linebreak=<br>&delim=|&sort_by=date&order=desc"
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", strUrl, False
objHTTP.SetRequestHeader "Content-type","text/html"
objHTTP.Send
strHTML = objHTTP.ResponseText
Set objHTTP = Nothing
arr = Split(strHTML, "<br>")
iLoop = 0
For i = 0 To UBound(arr)
arr2 = Split(Replace(Split(arr(i), "{")(0), vbCrlf, ""), "|")
iTemp = CLng(iTemp)
If iTemp =< 99 Then
strFolder = 0
ElseIf iTemp =< 199 Then
strFolder = 100
ElseIf iTemp =< 299 Then
strFolder = 200
End If %>
<td bgcolor="#FFFFFF" width="218" height="20" align="center" valign="middle"><img src="<% = strBaseUrl %>/screenshots/<% = strFolder %>/<% = arr2(0) %>-m.jpg" border="0" alt="<% = imgtitle %>"></td>
<% iLoop = iLoop + 1
If iLoop Mod 2 = 0 Then Response.Write "</tr>"
Next %>
Och inkommande strängar ser ut såhär:
127 17 287 2002-07-04 5 0 0 0 0 0 0 0 1 0 0
{100/127-b.jpg
100/127-h.jpg
100/127-m.jpg
100/127-rs.jpg}
Och var är pipe-tecknen????
Du förstör min hjärna...
Jag vet och jag ber om ursäkt för det...
Pipe-tecknen kan man använda som avdelare i scriptet som template monster genererar strängarna ifrån. Alltså att strängen levereras som:
127|17|287|2002-07-04|5|0|0|0|0|0|0|0|1|0|0
{100/127-b.jpg
100/127-h.jpg
100/127-m.jpg
100/127-rs.jpg}
Jag gissar att man kan välja att få strängen levererad så för att lättare kunna behandla och bearbeta den.
Eftersom jag blev tvungen att testa koden nu så verkar det som att det inte alltid ingår ett {-block i den hämtade HTML-koden. Detta innebär att du får lägga en if-sats för att kontrollera detta.
<%
strBaseUrl = "http://www.template-help.com"
strUrl = strBaseUrl & "/webapi/templates_screenshots4.php?category=10&linebreak=<br>&delim=|&sort_by=date&order=desc"
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", strUrl, False
objHTTP.SetRequestHeader "Content-type","text/html"
objHTTP.Send
strHTML = objHTTP.ResponseText
Set objHTTP = Nothing
arr = Split(strHTML, "<br>")
iLoop = 0
For i = 0 To UBound(arr)
if instr(arr(i), "{") > 0 then
arr2 = Split(Replace(Split(arr(i), "{")(0), vbCrlf, ""), "|")
iTemp = CLng(iTemp)
If iTemp =< 99 Then
strFolder = 0
ElseIf iTemp =< 199 Then
strFolder = 100
ElseIf iTemp =< 299 Then
strFolder = 200
End If %>
<td bgcolor="#FFFFFF" width="218" height="20" align="center" valign="middle"><img src="<% = strBaseUrl %>/screenshots/<% = strFolder %>/<% = arr2(0) %>-m.jpg" border="0" alt="<% = imgtitle %>"></td>
<%
iLoop = iLoop + 1
If iLoop Mod 2 = 0 Then Response.Write "</tr>"
end if
Next
%>
Tusen tack @nders! Nu fungerar det utmärkt. Du har verkligen offrat dig för att lösa detta.

