webForumDet fria alternativet

Tilldela namn på varje värde i array

ASP

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 →
Medlem sedan maj 2002821 inlägg
#21

Kolla ovan så ser du.

Medlem sedan juni 200032 967 inlägg
#22

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.

Medlem sedan maj 2002821 inlägg
#23

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}
Medlem sedan juni 200032 967 inlägg
#24

Och var är pipe-tecknen????
Du förstör min hjärna...

Medlem sedan maj 2002821 inlägg
#25

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.

Medlem sedan juni 200032 967 inlägg
#26

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 
%>
Medlem sedan maj 2002821 inlägg
#27

Tusen tack @nders! Nu fungerar det utmärkt. Du har verkligen offrat dig för att lösa detta.

Medlem sedan juni 200032 967 inlägg
#28

Vasse! :)

Fast hos mig lyckades jag bara se en av bilderna, men det gör inte så mycket. ;)

Mvh

256 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
117 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)