Just nu i M3-nätverket
Jump to content

Göra sträng av array?


Jakob Nanneson

Recommended Posts

Jakob Nanneson

Varför fungerar inte detta?

 

strCurrentTrack = arrCurrTrack(0)

 

Hur gör man sträng av array?

 

Type mismatch

 

 

[inlägget ändrat 2002-12-07 17:58:29 av Jakob Nanneson]

Link to comment
Share on other sites

Jakob Nanneson

Men jag måste ju i vilket fall börja med att deklarera något.

 

Då skriver jag "dim x as string", men får fel på det; "Expected end of statement", vid x-et.

 

Jag skriver asp för övrigt.

 

 

[inlägget ändrat 2002-12-07 18:14:07 av Jakob Nanneson]

Link to comment
Share on other sites

Jakob Nanneson

Verkar inte som om man ska deklarera alls i asp. Så smidigt då.

 

Men det blir ju fel i vilket fall som helst, några tips på varför det blir "Type mismatch" på detta?

 

CurrentTrack = Trim(arrCurrTrack(0))

 

Link to comment
Share on other sites

Är arrCurrTrack(0) en sträng?

 

Du kan använda följande för att se vilken typ det är:

response.write("<br>type: "& TypeName(arrCurrTrack(0) &"<br>")

 

om det är ett tal eller liknande, så kan du använda CStr för att göra om det till en sträng, men.. är det ett tal behöver du inte köra Trim.

CurrentTrack=CStr(arrCurrTrack(0))

 

Ciao,

Anders

 

Link to comment
Share on other sites

Jakob Nanneson

Jag har gjort om min kod en del, men får det fortfarande inte att fungera.

 

Koden ska ta strängen och separera numrering med titel. Om inget nummer finns är det ok.

 

Det verkar vara problem med att splitta arrayn. Dessutom funderar jag på om jag inte måste kontrollera om det verklingen finns något värde innan jag fortsätter.

 

dim str
str = "1. Kakan har 1 lämnat huset; 12) Tjolahopptjolalej; Lakej med smör;"

dim arrTracks, arrNumFind, tracknum, trackname
arrTracks = Split(str,";")
For n=0 To UBound(arrTracks)
	arrNumFind = Split(Trim(arrTracks(n))," ")
	If IsNumeric(arrNumFind(0)) Then
		tracknum = arrNumFind(0)
	End If
	trackname = Replace(arrTracks(n),tracknum,"","1","1")

	Response.Write(tracknum)
	Response.Write(trackname)
Next

 

 

Microsoft VBScript runtime (0x800A0009)

Subscript out of range: '[number: 0]'

 

Tacksam för all hjälp!

 

[inlägget ändrat 2002-12-08 13:47:17 av Jakob Nanneson]

Link to comment
Share on other sites

jag vet inte riktigt vad du är ute efter men jag la till en ubond test på arrNumFind så den inte ska testa en arry som är tom så nu funkar ditt script men om den gör rätt det vet jag inte =)

 

dim str

str = "1. Kakan har 1 lämnat huset; 12) Tjolahopptjolalej; Lakej med smör;"

 

dim arrTracks, arrNumFind, tracknum, trackname

arrTracks = Split(str,";")

For n=0 To UBound(arrTracks)

arrNumFind = Split(Trim(arrTracks(n))," ")

if ubound(arrNumFind) > 0 Then

If IsNumeric(arrNumFind(0)) then tracknum = arrNumFind(0)

end if

trackname = Replace(arrTracks(n),tracknum,"","1","1")

 

Response.Write("tracknum=" & tracknum & "<br>")

Response.Write("tracknum=" & trackname & "<br>")

Next

 

Link to comment
Share on other sites

Jakob Nanneson

Det sista semikolonet skapade en tom array som gjorde att det hela slutade fungera. En test med ubound kollade om det fanns något innehåll, vilket löste biffen.

 

Tack.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...