webForumDet fria alternativet

får inte cInt att fungera

ASP

16 svar · 266 visningar · startad av Addeladde

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

Måsta man ha med någon fil på sidan för att få cInt att fungera på variabler

jag får felmeddelandet inkopatibla typer när jag använder cInt

------------------
Adde

Medlem sedan dec. 19995 874 inlägg
#2

Hur ser din kod ut?

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=19" TARGET=_blank>Skulle du äta på restaurang, om det var rökförbud?
</A>Varför blir mina isbitar inte lika klara som i reklamen?

Medlem sedan dec. 19998 577 inlägg
#3

Cint är en helt vanlig funktion i VBScript och således behövs inga axtra filer...

Cint används för att konvertera till datatypen integer, och således måste det du konverterar vara kompatibelt med en int, DVS endast numersika tecken.

------------------
Vide rox = new Vide();
rox.learn("C#");

webeye.nu

Medlem sedan dec. 19995 874 inlägg
#4

För att uveckla vad Vide just sa innebär det att du inte kan köra cInt() på något utav följande strängar

strang = "y1"
strant = "anna"

men följande går bra

strang = "11"
strang = "29849834"

Det du kan göra är följande:

Function noAlph(ByVal sText)

	Dim oRegExp

	Set oRegExp = New RegExp
	oRegExp.Pattern = "\D"
	oRegExp.Global = True
	oRegExp.Execute(sText)
	noAlph = oRegExp.Replace(sText, "")

End Function

strang = noAlph("hejsan11hejdå")
strang kommer då få värdet "11", som du sedan kan köra cInt på..

------------------
Mvh
Patrik aka Brimba
<A HREF="http://www.brimba.nu/default.asp?oPID=poll&PollID=19" TARGET=_blank>Skulle du äta på restaurang, om det var rökförbud?
</A>Varför blir mina isbitar inte lika klara som i reklamen?

Medlem sedan juli 20003 825 inlägg
#5
IF IsNumeric(request("your_age")) = TRUE THEN age = request("your_age") ELSE age = 0

------------------
I sometimes wish I was famous.

Medlem sedan juni 200032 967 inlägg
#6

om man vill kan man ju jaga kodmängd också. som eclipse brukar säga, less is more. ;)

IF IsNumeric(request("your_age"))  THEN age = request("your_age") ELSE age = 0

jag brukar för enkelhetens skull alltid ditcha = true och byta = false mot ett litet not.

en liten parentes bara.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan juni 2001206 inlägg
#7

Jag får samma fel jag också...just nu kör jag med Int istället för Cint men går det att fixa med Cint den här koden?:

fraga = Int(Trim(Request.QueryString("fraga")))

QueryStrings-värdet är bara en vanlig siffra...men icke.

------------------
MVH
Harback

[Redigerat av Harback den 20 jun 2001]

Medlem sedan mars 20007 896 inlägg
#8

cInt står för ConvertToInteger, alltså att man konverterar en sträng, eller vad det nu är, till en integer. Int gör bara om en double, float eller något till ett heltal, alltså tar bort decimaler från ett redan existerande numeriskt värde.

Har för mig att det var så :)

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

Medlem sedan okt. 20005 273 inlägg
#9

Man kan ju köra en:

Response.Write TypeName(Fraga)

och se vad man får.... :)

och med

fraga = Int(Trim(Request.QueryString("fraga")))

så ändrar man väll inte Request.QueryString("fraga") till ett heltal....

då maste man väl använda Cint(Trim(Request.QueryString("fraga")))

------------------
ibland tror jag att jag kan lite för lite än vad jag kan ....

Medlem sedan juli 20003 825 inlägg
#10

edit.asp?ID=21

ID är en sträng, ej int.(?) trim() tar bort mellanslag. CInt konverterar CInt(request"ID") blir talet 21.

------------------
I sometimes wish I was famous.

Medlem sedan juli 20003 825 inlägg
#11

Jag måste förtydliga mitt svar ovan lite...

Om man jämför ett värde i en databas med ett värde som man skickar så måste det skickade värdet ha rätt typ. Nu menar jag efter själva sql satsen liksom...

SQL = "SELECT * FROM [agenda]"
set mySQL = Conn.Execute(SQL)
DO UNTIL mySQL.EOF
IF mySQL("x_date") = CDate(request("date")) THEN response.write "happy birthday"
mySQL.MoveNext
LOOP

hajjarru?

------------------
I sometimes wish I was famous.

Medlem sedan juni 2001206 inlägg
#12

Men hur gör jag i mitt fall? Det går inte som ni säger att skriva:

fraga = Cint(trim(Request.QueryString("fraga")))

Det blir sträng-fel då. Varför?

När jag jämför fraga-variabeln med en annan variabel måste ju de ha samma typ men hur?

<% mfraga = 11
fraga = Cint(trim(Request.QueryStrin("fraga")))

if fraga > mfraga Then %>
Fraga är större
<%Else%>Fraga är inte större
<%End If%>

Men detta går inte att använda med Cint (sträng-fel)...hur ska jag göra?

------------------
MVH
Harback

[Redigerat av Harback den 21 jun 2001]

Medlem sedan mars 20007 896 inlägg
#13

Om du får strängfel skulle jag gissa på att du inte bara har numeriska värden i din QueryString.

icaaq: Läs om mitt inlägg... cInt konverterar icke-tal variabler, strängar/chars/osv, till heltal, medans Int konverterar tal variabler, doubles/float/osv, till heltal.

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

Medlem sedan juni 2001206 inlägg
#14

Min QueryString innehåller bara numreriska värden, typ 1,2,3 etc. Är inte det tillräckligt eller måste jag behandla variabeln med dessa värden innan jag skickar med dom i QueryStringen?

------------------
MVH
Harback

Medlem sedan juni 200032 967 inlägg
#15

nej, du behöver inte behandla värdena på något sätt innan du slänger med dem i querystringen.

jag vore tacksam om du kunda kasta in hela din url här, typ http://localhost/bla.asp?bla=1&gko=2

bara för säkerhets skull.

------------------
<A HREF="http://cartman.nu" TARGET=_blank>
can i borrow your goat?
</A>

Medlem sedan juni 2001206 inlägg
#16

Ett exempel...
http://localhost/fil.asp?next=fragor&fraga=3&fragor=ja

------------------
MVH
Harback

Medlem sedan mars 20007 896 inlägg
#17

Inget fel på den QueryStringen... Det måste vara något fuffens när du hämtar informationen. Hur gör du det?
Något liknande det här?

<%
sNext = Request.QueryString("next")
nFraga = cInt(Request.QueryString("fraga"))
sFragor = Request.QueryString("fragor")
%>

------------------
SPiN, bjorne.w@telia.com

-- They pretend to pay me, I pretend to work --

253 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
121 ms — ändringar (db)