webForumDet fria alternativet

Hitta största talet

ASP

3 svar · 242 visningar · startad av Bjarne A

Medlem sedan feb. 2001151 inlägg
Frågan#1

Hej!

Jag vill ta reda på vilket av värderna jag hämtar från textfiler som är störst och tilldela det till ZZ för att kunna räkna med det senare i koden.
Har försökt med IF-satser men det bara tilldelar ZZ 0 till sista IF-satsen
Sökt här på WF och försökt med en FOR NEXT men inte fått till det

Dim Z, a, b, c, d, e, f, g, h, aa, bb, cc, dd, ee, ff, gg, hh
Set Z = CreateObject("Scripting.FileSystemObject")
Set a = Z.OpenTextFile(Server.MapPath("raknare_default.txt"))
Set b = Z.OpenTextFile(Server.MapPath("raknare_kontakta_oss.txt"))
Set c = Z.OpenTextFile(Server.MapPath("raknare_bli_medlem.txt"))
Set d = Z.OpenTextFile(Server.MapPath("raknare_1.txt"))
Set e = Z.OpenTextFile(Server.MapPath("raknare_2.txt"))
Set f = Z.OpenTextFile(Server.MapPath("raknare_3.txt"))
Set g = Z.OpenTextFile(Server.MapPath("raknare_4.txt"))
Set h = Z.OpenTextFile(Server.MapPath("raknare_raknare.txt"))

aa = a.ReadLine
bb = b.ReadLine
cc = c.ReadLine
dd = d.ReadLine
ee = e.ReadLine
ff = f.ReadLine
gg = g.ReadLine
hh = h.ReadLine
Dim ZZ
ZZ = 0
IF aa > ZZ THEN
ZZ = aa
ELSE
ZZ = ZZ
END IF

IF bb > ZZ THEN
ZZ = bb
ELSE
ZZ = ZZ
END IF
intMax=0
for i=1 to 5
intCur=CInt(request("tal" & i))
if intCur>intMax then intMax=intCur
next
Medlem sedan dec. 20003 887 inlägg
#2

Jag ser inte vad kodsnutt tre har med det hela att göra, men jag föreslår att du använder dig av en array för att lagra räknarna.

Dim objFSO, objFile, intCounters(), intIndexMax
Const intFiles = 8

ReDim intCounters(intFiles)

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_default.txt"))
intCounters(1) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_kontakta_oss.txt"))
intCounters(2) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_bli_medlem.txt"))
intCounters(3) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_1.txt"))
intCounters(4) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_2.txt"))
intCounters(5) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_3.txt"))
intCounters(6) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_4.txt"))
intCounters(7) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_raknare.txt"))
intCounters(8) = objFile.ReadLine

objFile.Close
Set objFile = Nothing
Set objFSO = Nothing

intMaxIndex = 1

For i = 2 To intFiles
  If CInt(intCounters(i)) > CInt(intCounters(intMaxIndex)) Then intMaxIndex = i
Next

Response.Write intCounters(intMaxIndex) & " är störst."

Jag tror att det kan fungera.

Medlem sedan feb. 2001151 inlägg
#3

Tack!
Det gnäldes på CInt så jag ändrade till bara Int(...
och då blev det bra. Int tar bara heltal men vad gör CInt

Dim objFSO, objFile, intCounters(), intIndexMax
Const intFiles = 8

ReDim intCounters(intFiles)

Set objFSO = CreateObject("Scripting.FileSystemObject")

Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_default.txt"))
intCounters(1) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_kontakta_oss.txt"))
intCounters(2) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_bli_medlem.txt"))
intCounters(3) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_1.txt"))
intCounters(4) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_2.txt"))
intCounters(5) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_3.txt"))
intCounters(6) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_4.txt"))
intCounters(7) = objFile.ReadLine
Set objFile = objFSO.OpenTextFile(Server.MapPath("raknare_raknare.txt"))
intCounters(8) = objFile.ReadLine

objFile.Close
Set objFile = Nothing
Set objFSO = Nothing

intMaxIndex = 1

For i = 2 To intFiles
  If [B][red]C[/red][/B]Int(intCounters(i)) > [B][red]C[/red][/B]Int(intCounters(intMaxIndex)) Then intMaxIndex = i
Next

Response.Write intCounters(intMaxIndex) & " är störst."
Medlem sedan dec. 20003 887 inlägg
#4

CInt konverterar ett nummer till ett heltal.

263 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)