Avatar billede bluegene Nybegynder
17. maj 2003 - 13:23 Der er 38 kommentarer og
1 løsning

spilt lang variabel

jeg har en variabel som ser ud som følgende >
101011101111010100110010111

Mit spørgsmål lyder så på hvordan slipper jeg denne variabel så jeg har mulighed for at få fat i hver eneste af de 1/0'er i den rigtige rækkefølge?
Avatar billede Slettet bruger
17. maj 2003 - 13:34 #1
Hvor mange skal der være i hver sektion?
Avatar billede virus Nybegynder
17. maj 2003 - 13:37 #2
<%
IntVar = 101011101111010100110010111
For Index = 1 To Len(IntVar)
AryVar(Index - 1) = Mid(IntVar, I, 1)
Next
%>

Nu ville du ha et array med dine værdier, problemet er jo
du ikke kan bruge funktionen Split, når din streng ikke
har noget at blive splittet på, derfor bliver du nødt til
at loope gennem den og gøre det "manuelt" :)
Avatar billede virus Nybegynder
17. maj 2003 - 13:37 #3
AryVar(Index - 1) = Mid(IntVar, I, 1) <- skal være
AryVar(Index - 1) = Mid(IntVar, Index, 1)
Avatar billede virus Nybegynder
17. maj 2003 - 13:39 #4
Dvs du kan nu hive din var ud på denne måde

<%
For Index = 0 To UBound(AryVar)
Response.Write AryVar(Index)
Next
%>
Avatar billede bluegene Nybegynder
17. maj 2003 - 13:55 #5
bertie > det skal kun være enkelte tal dvs 1 & 0 :)
Avatar billede virus Nybegynder
17. maj 2003 - 13:57 #6
bluegene Hvad er ideen egentligt i det? Hvis du allerede har din variabel, hvorfor så splitte den så du kan genskabe den?

Mit eksempel skulle virke på den måde du ville ha det
Avatar billede bluegene Nybegynder
17. maj 2003 - 13:57 #7
virus > det du omtaler i kommentar 2 skal begge benyttes eller ?
Avatar billede bluegene Nybegynder
17. maj 2003 - 13:59 #8
virus, skal ikke genskabe den *G*

skal have værdierne ud sådan så jeg eks kan sige eks er tegn nummer 4.... 1 eller 0
Avatar billede bluegene Nybegynder
17. maj 2003 - 14:06 #9
hvis mig der sover lidt i timen her :-s

har skrevet sådan nu

IntVar = "101011101111010100110010111"
For Index = 1 To Len(IntVar)
AryVar(Index - 1) = Mid(IntVar, Index, 1)
Next

men får desværre fejlen

Microsoft VBScript runtime fejl '800a000d'

Type mismatch: 'AryVar'

Test.asp, linje 41
Avatar billede Slettet bruger
17. maj 2003 - 14:07 #10
Jamen så skal du bare gøre som virus foreslår.
Avatar billede Slettet bruger
17. maj 2003 - 14:09 #11
Du skal sikkert lave en Dim AryVar(), hmm kan ikke lige huske om paranteserne skal være der eller ej.
Avatar billede bluegene Nybegynder
17. maj 2003 - 14:12 #12
bertie, well - har lige prøvet og det giver fejlen: Subscript out of range
Avatar billede Slettet bruger
17. maj 2003 - 14:21 #13
Har du prøvet med og uden paranteserne?
Ellers prøv lige at smide hele din kode her.
Avatar billede bluegene Nybegynder
17. maj 2003 - 14:23 #14
Jo, har prøvet både med/uden

<%
dim AryVar()

IntVar = "101011101111010100110010111"
For Index = 1 To Len(IntVar)
AryVar(Index - 1) = Mid(IntVar, Index, 1)
Next
%>
Avatar billede bluegene Nybegynder
17. maj 2003 - 14:24 #15
den skal ikke dimmes as "noget" vel ?
Avatar billede Slettet bruger
17. maj 2003 - 14:25 #16
Jeg ved ikke om det kan være noget med tal og bogstaver men prøv evt det her:
<%
dim AryVar()

IntVar = "101011101111010100110010111"
For Index = 1 To Len(IntVar)
  AryVar(Index - 1) = CInt(Mid(IntVar, Index, 1))
Next
%>
Avatar billede Slettet bruger
17. maj 2003 - 14:26 #17
Nej i VBScript bruger man ikke AS når man dim'mer.
Avatar billede bluegene Nybegynder
17. maj 2003 - 14:27 #18
bertie, nej desværre den giver stadig fejlen

Microsoft VBScript runtime fejl '800a0009'

Subscript out of range

Test.asp, linje 6
Avatar billede Slettet bruger
17. maj 2003 - 14:29 #19
Måske skal arrayet have en længde prøv at smide dette ind:
dim AryVar()
redim AryVar(Len(IntVar - 1))  <-- Smid denne ind.
IntVar = "101011101111010100110010111"
Avatar billede bluegene Nybegynder
17. maj 2003 - 14:31 #20
Nu blev fejlen ændret en smule til - lader til vi har stortset samme problem :-/ 
Microsoft VBScript runtime fejl '800a0009'

Subscript out of range: '[number: 3]'

Test.asp, linje 6
Avatar billede Slettet bruger
17. maj 2003 - 14:32 #21
Hmm går lige i tænkeboks.
Avatar billede Slettet bruger
17. maj 2003 - 14:41 #22
Det her virker fint hos mig:
<%
dim AryVar()
IntVar = "101011101111010100110010111"
redim aryvar(len(intvar))
For Index = 1 To Len(IntVar)
    AryVar(Index - 1) = Mid(IntVar, Index, 1)
Next

Response.Write "Nr 3 " & aryvar(2)

%>
Avatar billede bluegene Nybegynder
17. maj 2003 - 14:45 #23
bertie > ja, nu virker det sørme *G* Nice, Mange takker for hjælpen :)
Avatar billede roenving Novice
17. maj 2003 - 14:46 #24
Og så en anelse optimeret:

<%
dim AryVar()
IntVar = "101011101111010100110010111"
redim aryvar(len(intvar) - 1)
For Index = 1 To Len(IntVar) - 1
    AryVar(Index) = Mid(IntVar, Index, 1)
Next

Response.Write "Nr 3 " & aryvar(2)

%>
Avatar billede Slettet bruger
17. maj 2003 - 14:49 #25
Velbekom, men mon ikke virus også skal have nogle point da det var ham der kom med koden først, virus sig lige til så ordner vi det.

roenving>> jo glemte lige -1 i farten, har lige testet det og det funker :-)
Avatar billede bluegene Nybegynder
17. maj 2003 - 14:50 #26
roenving > din optimering, giver hvis et forkert "tal" vi stater fra 0 ikke sandt ?
Avatar billede roenving Novice
17. maj 2003 - 14:51 #27
Undskyld, jeg glemte lige:

For Index = 0 To Len(IntVar) - 1
Avatar billede Slettet bruger
17. maj 2003 - 14:52 #28
Den giver ikke et forkert tal, når du læser fra strengen starter du altid fra pos 1 men array starter altid fra 0 så derfor skal det være fra 0 til længde af streng - 1 :-)
Avatar billede Slettet bruger
17. maj 2003 - 14:53 #29
Øh glem bare min sidste kommentar, jeg er nået til vrøvleniveauet nu :-)
Avatar billede bluegene Nybegynder
17. maj 2003 - 14:54 #30
roenving > tror bare vi holder os til den som starter med 1 *G* det sidste giver en fejl da vi som sagt ikke kan trække - 1 fra 0 så giver det -1 som ikke findes i arrayet
Avatar billede roenving Novice
17. maj 2003 - 14:58 #31
Hvor trækker du fra nul??

<%
dim AryVar()
IntVar = "101011101111010100110010111"
redim aryvar(len(intvar) - 1) "<<<Her trækker du en fra længden af variablen
For Index = 1 To Len(IntVar) - 1 "<<<Her trækker du en fra længden af variablen
    AryVar(Index) = Mid(IntVar, Index, 1)
Next

Response.Write "Nr 3 " & aryvar(2)

%>
Avatar billede roenving Novice
17. maj 2003 - 14:59 #32
Index skal stadig starte fra 0 hvis du bruger len()-1 ;-(
Avatar billede bluegene Nybegynder
17. maj 2003 - 15:03 #33
For Index = 0 To Len(IntVar) - 1 << du medtog ikke det sidste du kom med, det er når jeg indsætter den fejlen opstår, det første virker ganske godt :)

så lad os bare holde os til det *G* ;)
Avatar billede bluegene Nybegynder
17. maj 2003 - 15:05 #34
roenving > Well, den indeholder ihvertfal ikke en værdi når jeg prøver at trække den ud *G*
Avatar billede bluegene Nybegynder
17. maj 2003 - 15:09 #35
Nr 0 =
Nr 1 = 1
Nr 2 = 0
Nr 3 = 1
Nr 4 = 0
Nr 5 = 1
Nr 6 = 1
Nr 7 = 1
Nr 8 = 0
Nr 9 = 1
Nr 10 = 1
Nr 11 = 1
osv... testede lige...
Avatar billede roenving Novice
17. maj 2003 - 15:15 #36
Optimeringen ligger i, at du ikke skal gentage subtraktionen for hver gang, men det kan du vel næppe mærke -- og som jeg lige nåede at bemærke sidst, skulle det selvfølgelig starte fra 0 -- for index=0 to 26 bliver det til med din testvariabel ...
Avatar billede bluegene Nybegynder
17. maj 2003 - 15:44 #37
der er hvis et eller andet helt galt her, får ikke sidste tal med i rækken og hvis jeg skriver 0 ved index går koden nedenom og hjem :-s
Avatar billede roenving Novice
17. maj 2003 - 16:13 #38
har du sat en option base et eller andet sted ?-)

-- for så vil et index på 0 kunne være ulovlig, og så er det:

<%
dim AryVar()
IntVar = "101011101111010100110010111"
redim aryvar(len(intvar))
For Index = 1 To Len(IntVar)
    AryVar(Index) = Mid(IntVar, Index, 1)
Next

Response.Write "Nr 2 " & aryvar(2)

%>
Avatar billede hossein Nybegynder
17. maj 2003 - 19:05 #39
Man kan numre give hele længden på en gang:
<%
dim minvariable
minvariable = "01011101111010100110010111"
minvariable = replace(minvariable,"0","0,")
minvariable = replace(minvariable,"1","1,")
minvariable = split(minvariable,",")

for i = 0 to ubound(minvariable)
Response.write "Variable Nr.:" & (i) & " er = " & minvariable(i)
%>
<br>
<%
next
%>
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester