Avatar billede Slettet bruger
24. juni 2002 - 23:26 Der er 3 kommentarer og
1 løsning

Hvorfor kan man ikke oprette dynamiske arrays i ASP?

1. Hvorfor virker dette ikke:

antal_poster = 100

Dim arr_id(antal_poster)
Dim arr_serial(antal_poster)
Dim arr_overskrift(antal_poster)

Der får jeg en "En heltalskonstant var ventet" fejl.

2. Hvorfor kan man ikke blot skrive:

mit_array() = "en hest" og så bliver der tilføjet et element i mit_array() ?
Avatar billede medions Nybegynder
24. juni 2002 - 23:43 #1
el_barto> Du behøver jo ikke at definere hvor mange poster du skal bruge!

Dim arr_id()
Dim arr_serial()
Dim arr_overskrift()

Mener nok man kan sådan... kan sq ik' lige huske det :-(

//>Rune
Avatar billede kimiwan Nybegynder
25. juni 2002 - 00:32 #2
dim det uden at angive antal_poster først, derefter redimmer du og bruger antal_poster:

dim arr_id()
redim preserve arr_id(antal_poster)
Avatar billede Slettet bruger
25. juni 2002 - 00:39 #3
nice kimiwan :) Det virker jo *G*

Så kan det være du kan svare på dette tillæg:

Burde dette ikke returnere arr_serial(i) minus 3 tegn fra venstre?

arr_serial(i) = CStr(arr_serial(i))
rest = Left(arr_serial(i), - 3)

Det er tæt på at jeg bukker under og bruger PHP, men når nu jeg vil rode med ASP....

Det jeg har brugt 1 uge på at lave i ASP kunne jeg lave på 2 timer i PHP (næsten)

Det der især undrer mig er den meget tunge arbejdsgang, hele tiden at typekonvertere, generklære variabler, arrays osv. Her er PHP altså en dele mere tolerent.
Avatar billede kimiwan Nybegynder
25. juni 2002 - 00:54 #4
Hvis php er så tæt på javascript som jeg tror (har aldrig rigtig selv rodet med php), så er der langt mere typekonvertering i php end i asp - I asp er dine værdier nemlig af typen variant, og som regel "finder de selv ud af", hvad for en type de skal bruges som.

Mht. dit konkrete spørgsmål, bruger du left() funktionen forkert.  Left() tager to argumenter: en streng (STRENG) og et positivt tal (X).  Det, left() funktionen så gør er at returnere de første X antal tegn af STRENGen fra *venstre*.

Right() funktionen gør det samme, blot returnerer den de første X antal tegn af STRENGen fra *højre*.

Hvis du vil have hele strengen *minus* de sidste 3 tegn, skal du bruge en kombination af Left() og Len() funktionerne (len = length).

rest = Left(arr_serial(i), Len(arr_serial(i))-3)

...eller skåret ud i pap ;o)
længden_af_arr_serial_minus_tre_tegn = Len(arr_serial(i))-3
værdien_af_længden_af_arr_serial_minus_tre_tegn = Left(arr_serial(i), længden_af_arr_serial_minus_tre_tegn)

så skal du selvfølgelig lige huske at tjekke at arr_serial(i) ikke er null, ellers giver det fejl (du kan ikke bruge left() og funktionen på en null-værdi).

if len(arr_serial(i))>0 then 'arr_serial(i) indeholder en værdi, som nu tolkes som en strengværdi
  rest = Left(arr_serial(i), Len(arr_serial(i))-3)
end if
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