webForumDet fria alternativet

Split(txt), jämnföra som tal

ASP

13 svar · 531 visningar · startad av SannyW

Medlem sedan jan. 2003438 inlägg
Frågan#1

Hej,

Hämtar "txt" ur databas, typ 1-2. Vill sedan använda detta och jämnföra 1 mot 2 efter att kört Split().

Får fram tal om jag skriver ut, men om jag fattar mina felmess rätt så är "talen" fortfarande text. Hur löser man detta, har sökt i forumet men hittar nog inte rätt.

lägger jag till

homegoals+awaygoals = strr

fel mess:
Microsoft VBScript runtime error '800a000d'

Type mismatch: 'homegoals'

Do Until objConn.EOF
	if x = 0 then response.write "Omgång 1"
	if x = 3 then response.write "Omgång 2"

strResultat = objConn("resultat")
 
tmpVar = Split(strResultat, "-")
homegoals=tmpVar(0)
awaygoals=tmpVar(1)

tmpHlag = Trim(objConn("hlag"))

IF ((tmpHlag = "IBK") AND (homegoals > awaygoals)) THEN

	sColor="green"
END IF

IF ((tmpHlag = "IBK") AND (homegoals < awaygoals)) THEN

	sColor="red"
END IF

Response.Write "<br>"
Response.Write sColor
Response.Write "<br>"
Response.Write tmpHlag
Response.Write "<br>"
Response.Write homegoals
Response.Write "<br>"
Response.Write awaygoals
Response.Write "<br>"

x=x+1
objConn.MOVENEXT 
LOOP

' Close and clean up
objConn.close
Set objConn = Nothing

%>

Tack på förhand.

Mvh

Medlem sedan jan. 2003438 inlägg
#2

Fråga 2)

Varför blir det skillnad om jag istället skickar värden från homegoals=tmpVar(0) i en Querystring och då använda cInt( homegoals )

Det har jag fungerande i en annan version då jag skickar tmp från en sida till en annan. Då kan jag behandla texten som tal?

Medlem sedan apr. 20022 743 inlägg
#3

CInt() gör att det formateras som tal

Medlem sedan jan. 2003438 inlägg
#4

Jag trodde att CInt() skulle fungera tidigare också, testat på nytt med samma resultat.

IF ((tmpHlag = "IBK") AND (CInt(homegoals) > CInt(awaygoals))) THEN

Felmeddelande:
Microsoft VBScript runtime error '800a000d'

Type mismatch: 'CInt'

Medlem sedan juni 200032 967 inlägg
#5

Vad innehåller variablerna då? Skriv ut och testa.

Medlem sedan jan. 2003438 inlägg
#6

variablerna innehåller nummer.

Response.Write homegoals

Ger t ex en 6:a, men jag kör en Split() på typ 2-1 som är txt. Vill ju att variablerna skall formateras som tal efter split.

Medlem sedan juni 200032 967 inlägg
#7

Ja, men det ligger inte och skräpar något mellanslag eller något?

Medlem sedan jan. 2003438 inlägg
#8

Jo, visst gjorde det så. Men får trots detta samma resultat på rad 3 här. Men jag ser ett problem nu, när Split() inte kan genom föras på typ 2-1. Vad händer då? Vissa rader innehåller endast - då inget resultat finns ännu. Kan problemet ligga här?

homegoals=Trim(tmpVar(0))
awaygoals=Trim(tmpVar(1))

CInt(homegoals) + CInt(awaygoals) = strr
Medlem sedan juni 200032 967 inlägg
#9

SannyW skrev:

Vissa rader innehåller endast - då inget resultat finns ännu. Kan problemet ligga här?

Helt klart. Det är bara att kontrollera med en liten if-sats så du inte kör kod som kraschar.

Medlem sedan jan. 2003438 inlägg
#10

Tack för hjälpen hittills.

homegoals=Trim(CInt(tmpVar(0)))
awaygoals=Trim(CInt(Left(tmpVar(1),1)))

Har ändrat till ovantånde då tmpVar(1) kan innehålla, "2SD" efter att jag kört split() på 2-2 SD. Vill därför hämta första siffran i tmpVar(1) med Left.

Hoppas jag är inne på rätt spår, skrik till annars.

Angående if-satserna så får jag suga på den karamellen.

resultaten kan se ut:
1-2
1-1 SD
1-2 SD
-

Återkommer med utveckling.

Medlem sedan juni 200032 967 inlägg
#11

Du gör nog inte som jag hade gjort, men huvudsaken är väl att man får det att fungera.

Du borde byta plats på trim och cint i ditt exempel, annars riskerar du att få fel.

Medlem sedan jan. 2003438 inlägg
#12

Ok, tack för trim/cint. Ändrar det.

Om du känner för att berätta hur du hade gjort så är det välkommet. Ditt "väl" i fungera var inte övertygande :)

Medlem sedan juni 200032 967 inlägg
#13

Eftersom du vill använda hemmamål och bortamål för sig själv, hade jag nog lagrat värdena för sig själv, och lagt en statuskolumn i tabellen där du lagrar värden för om slutresultatet gäller efter ordinarie speltid, sudden death, straffar eller walk-over.

Medlem sedan jan. 2003438 inlägg
#14

Okey, då är jag med på noterna. Kort sagt, varför göra det svårare än det behöver.... :i

Får väga in det i framtiden, gör ett tappert försök att lösa problemet som ligger. Slipper då skriva om en massa rader i databasen, det blir ett par så...

Klurar lite till och återkommer med förändringar.

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