Avatar billede torbenmelander Nybegynder
24. maj 2001 - 20:25 Der er 2 kommentarer og
1 løsning

Hva\' gør jeg galt?

Hej \'eksperter\',

For at opdele en streng (som senere skal bruges til noget søgning) har jeg lavet følgende kode .. jeg har bare det problem at den opretter to tomme arrays også.

Er der nogen der kan se hvad jeg gør galt. Er dog IKKE interesseret i anden kode som gør noget lignende.

<%
dim s, sArray(), i, p

s = \"Min helt  specielle streng som skal opdeles  nemlig så!\"

redim sArray(1)

i = 0
while s <> \"\" and i < UBound(sArray)
  p = InStr(1, s, \" \", 1)
  if p > 1 then
    sArray(i) = Left(s, p-1)
    i = i + 1
  elseif p = 0 then
    sArray(i) = s
    p = Len(s)
    i = i + 1
  end if
  s = Mid(s,p+1)
  if( i >= UBound(sArray)) then
    ReDim Preserve sArray(i+1)
  end if
wend
%>
Avatar billede jespernaur Nybegynder
25. maj 2001 - 01:02 #1
Problemet er, at du omdimensionerer sArray i løkken EFTER at du har
indsat noget, og uden at vide om du rent faktisk har brug for det
ekstra element. Prøv følgende (som jeg dog ikke har testet):


dim s, sArray(), i, p

s = \"Min helt  specielle streng som skal opdeles  nemlig så!\"

i = 0
while s <> \"\" and i < UBound(sArray)
  p = InStr(1, s, \" \", 1)
  if p > 1 then
    ReDim Preserve sArray(i+1)
    sArray(i) = Left(s, p-1)
    i = i + 1
  elseif p = 0 then
    ReDim Preserve sArray(i+1)
    sArray(i) = s
    p = Len(s)
    i = i + 1
  end if
  s = Mid(s,p+1)
wend

Mvh
Jesper Naur
Avatar billede torbenmelander Nybegynder
25. maj 2001 - 08:56 #2

Hej Jakob

Tak for dit svar.. din kode virkede næsten (har lavet nogle små ændringer) men da du har hjulpet mig til at se hvad jeg gjorde galt har du fortjent dine point. Tak for hjælpen.


Her er koden:


dim s, sArray(), i, p

s = \"Min helt  specielle streng som skal opdeles  nemlig så!\"

i = 0
while s <> \"\"
  p = instr(1, s, \" \", 1)
  if p > 1 then
    redim preserve sArray(i+1)
    sArray(i) = left(s, p-1)
    i = i + 1
  elseif p = 0 then
    sArray(i) = s
    p = len(s)
    i = i + 1
  end if
  s = mid(s,p+1)
wend

\' Her løber vi igennem vores array og udskriver alle værdier
For n = LBound(sArray) To UBound(SArray)
    Response.Write \"sArray(\"& n &\") = \"& sArray(n) & \"<br>\"
Next
Avatar billede torbenmelander Nybegynder
25. maj 2001 - 08:57 #3
Rettelse Hej Jakob -> Hej Jesper
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