Jag har slitit med den här lilla kodsnutten hela dagen men jag får den inte att fungera. Tycker jag provat allt! Känns som att man inte kan lita på att asp utför kollen i while loopen exakt varje gång utan typ går händelserna i förväg. Det som händer är nämligen att det nya namnet skrivs ut flera gånger i rad, oftast 3 men ibland 2 eller 4. Här är koden:
i=1
Do While i<11
if CDbl(hiArray(0,i))<CDbl(time_elapsed) then
newArray(0,i) = hiArray(0,i)
newArray(1,i) = hiArray(1,i)
i = i + 1
else
newArray(0,i) = time_elapsed
newArray(1,i) = nickname
m=i+1
i=1000
Do while m<11
newArray(0,m) = hiArray(0,m-1)
newArray(1,m) = hiArray(1,m-1)
m = m + 1
Loop
end if
loop
hiArray(0,x) innehåller tiden (som ska vara så låg som möjligt)
hiArray(1,x) innehåller namnet.
Mycket tacksam om någon kan se varför det inte fungerar!
Efter några timmars ytterligare funderande har jag kommit fram till att den där koden förmodligen var fungerande och att felet ligger i skrivandet till textfilen som jag har datan sparad i.
Min kod för att skriva till textfilen är:
Set filetxt = filesys.CreateTextFile(Server.Mappath( "\keys" ) & "\hiscore.txt",True)
filetxt.WriteLine "hiscore="
for s=1 to 10
filetxt.WriteLine(newArray(2,s) & newArray(0,s) & " " & newArray(1,s))
next
filetxt.Close
Den nya arraydimensionen newArray(2,s) innehåller " 1", " 2" o.s.v. upp till "10".
Denna kod fungerar precis som den ska, det märkliga är att när jag vill ha ett mellanslag mellan numret och tiden (som finns i andra arrayen) så blir det ett jättekonstigt fel som suddar 1-3 tecken i varje sträng så att allting blir jättekonstigt.
Detta fungerar alltså inte:
filetxt.WriteLine(newArray(2,s) & " " & newArray(0,s) & " " & newArray(1,s))
Är det någon konstig bieffekt av någon FSO funktion jag råkat stöta på eller är jag helt enkelt dum i huvudet?
Prova med att använda ett annat tecken, till exempel kolon. Det kan ju vara ett enkelt sätt att se om mellanslag orsakar fel då FSO försöker översätta.
Det har jag oxå testat men det verkar inte spela någon roll vilket tecken jag försöker lägga in. Jag tycker inte raden kan bli för lång heller för det är bara runt 30 tecken i varje rad så det borde inte vara något problem.
Jag hittade felet, det var inget fel i koden utan fel i flash filen som anropade asp-scriptet. Scriptet anropades hela tiden tills det returnerade att det kört färdigt och på så vis hann flera script startas och köras parallellt innan det första kört klart så de skrev antagligen över varandra på något sätt.
Nu är det löst iaf!
252 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2