---
title: "Logiskt fel?"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/133039-logiskt-fel"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "M@rtin"
published: "2005-08-20T14:15:49.000Z"
updated: "2005-08-21T11:48:57.000Z"
replies: 4
views: 423
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/133039-logiskt-fel"
---

# Logiskt fel?

## #1 — M@rtin, 2005-08-20T14:15Z

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!

Permalänk: https://www.webforum.nu/p/133039

## #2 — M@rtin, 2005-08-20T21:53Z

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?

Permalänk: https://www.webforum.nu/p/1661475

## #3 — Engine^, 2005-08-21T10:04Z

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.

Permalänk: https://www.webforum.nu/p/1661528

## #4 — M@rtin, 2005-08-21T11:04Z

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.

Permalänk: https://www.webforum.nu/p/1661549

## #5 — M@rtin, 2005-08-21T11:48Z

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!

Permalänk: https://www.webforum.nu/p/1661556

---

Tråden på webben: https://www.webforum.nu/amne/asp/133039-logiskt-fel
