webForumDet fria alternativet

Felaktigt matrisindex '[number: 0]'

ASP

8 svar · 472 visningar · startad av LR^evil.sid

Medlem sedan maj 2002560 inlägg
Frågan#1

Nån som ser varför det blir fel?

MyDate = #2003-01-01#
CurDay = 1 - 31

	Function ConstSunday(MyDate, CurDay)
		Dim Sunday(4), ArrSunday, item, iitem
		ConstSunday = False
		Sunday(0)   = "1:1"		' ### Nyårsdagen
		Sunday(1)   = "1:6"		' ### Trettondedag Jul
		Sunday(2)   = Midsommar(CurDay)	' ### Midsommar
		Sunday(3)   = "12:25"		' ### Juldagen
		Sunday(4)   = "12:26"		' ### Annandag Jul
		For item = 0 To UBound(Sunday)
			ArrSunday = Split(Sunday(item), ":")
[red][b]line 103[/b]		If Int(Month(MyDate)) = Int(ArrSunday(0)) Then[/red]
				For iitem = CurDay To 31
					If Day(CurDay) = Day(ArrSunday(1)) Then
						ConstSunday = True
						Exit For
					End If
				Next
			End If
			If ConstSunday = True Then Exit For
		Next
	End Function

Med Felmeddelandet:

Felaktigt matrisindex: '[number: 0]'  
file: /calender/calender.asp  
line: « 103 »
Medlem sedan dec. 20003 887 inlägg
#2

ArrSunday är ingen array... måste du inte deklarera den som ArrSunday() när du dimmar den?

Medlem sedan maj 2002560 inlägg
#3

Det ger felmeddelandet "inkompatibla typer"

red: sedan har jag tidigare skrivit ut både ArrSunday(0) och ArrSunday(1) och båda har innehållit värden

Medlem sedan juni 200032 967 inlägg
#4

Returnerar funktionen Midsommar() något vettigt?

Medlem sedan maj 2002560 inlägg
#5

Jag vet inte : ) Det tänkte jag inte på.

Private Function Midsommar(CurDay)
	If Month(MyDate) = 6 Then
		If Int(CurDay) > 19 And Int(CurDay) < 27 Then
			For item = 20 To 27
				If WeekDay(CDate(Year(MyDate)&"-06"&item), vbMonday) = 6 Then
					Midsommar = "6:" & item
					Exit For
				End If
			Next
		End If
	End If
End Function

ska kolla det...

red: retunerar ingenting...

Medlem sedan maj 2002560 inlägg
#6

Hur kollar jag om ArrSunday = Split(Sunday(item), ":") blev en array då? Loopen tuffar bara på även fast jag satte dit IsArray() på ArrSunday

red: eller skall jag sätta ett värde på Midsommar() även fast det inte är juni?

Medlem sedan juni 200032 967 inlägg
#7

Börja med att se till att funktionen Midsommar returnerar något som är i det formatet den andra funktionen förväntar sig.

Mvh

Medlem sedan maj 2002560 inlägg
#8

Det löste sig när midsommar fick ett värde.

	Private Function ConstSunday(MyDate, CurDay)
		Dim Sunday(4), ArrSunday, item, iitem
		ConstSunday = False
		Sunday(0)   = "1:1"			' ### Nyårsdagen
		Sunday(1)   = "1:6"			' ### Trettondedag Jul
		Sunday(2)   = Midsommar(CurDay)	' ### Midsommar
		Sunday(3)   = "12:25"		' ### Juldagen
		Sunday(4)   = "12:26"		' ### Annandag Jul
		For item = 0 To UBound(Sunday)
			ArrSunday = Split(Sunday(item), ":")
			If Month(Month(MyDate)) = Month(ArrSunday(0)) Then
				For iitem = CurDay To 31
					If Day(CurDay) = Day(ArrSunday(1)) Then
						ConstSunday = True
						Exit For
					End If
				Next
			End If
			If ConstSunday = True Then Exit For
		Next
	End Function

	Private Function Midsommar(CurDay)
		Dim item
		For item = 20 To 27
			If WeekDay(CDate(Year(MyDate)&"-06-"&item), vbMonday) = 6 Then
				Midsommar = "6:" & item
				Exit For
			End If
		Next
	End Function

Tack @nders

Medlem sedan juni 200032 967 inlägg
#9

Med gamla Vide-ord:

Var sin ko. :)

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