Avatar billede jytte Nybegynder
30. august 2004 - 11:06 Der er 8 kommentarer og
2 løsninger

fra ASP til VB

Jeg har en asp-side som jeg gerne vil have lavet til en DLL i VB.

Jeg kan godt lave dll´en, men jeg får en type mismatch og fejlen kommer i min asp-kode og fortæller ikke hvor i mine 170 liniers kode fejlen kommer.

Så hvordan oversætter man

dim mitarray
mitarray = replace(enstreng,",")

til VB ( jeg går ud fra der skal skrives AS etellerandet)
Avatar billede martin_moth Mester
30. august 2004 - 13:08 #1
Du behøver ikke, men det er en god ide, at skrive:

Dim MitArray as String
MitArray = replace(EnString,",")

Du KAN i øvrigt (med mindre du forhindrede det ved at pille lidt mere i indstillingerne) få lov at bruge en variabel der ikke er erklæret:

Dim intHej as integer
intHej = 10
msgbox 5*intHje

I msgboxen vil der blive skrevet "0" ud, fordi VB tror du opretter en ny variabel der hedder intHje, og som er tom (=0). Du kan undgå dette ved at slå "require Variable Declaration" til.
Avatar billede jytte Nybegynder
30. august 2004 - 14:48 #2
Undskyld jeg kom til at skrive forkert

dim mitarray
mitarray = split(enstreng,",")

Skal den så hedde

dim mitarray() AS string
mitarray = split(enstreng,",")  ?

Hvor er det lige man slår "requere Variable Declaration" til henne ?
Avatar billede martin_moth Mester
30. august 2004 - 15:15 #3
Nå ja - jeg læste det som split, ikek som replace :o)

Du slår det til/fra under options
Avatar billede sjh Nybegynder
31. august 2004 - 01:45 #4
Det må være noget i den stil du søger..

Option Explicit

Private Sub Form_Load()
  S_Split "a,b,c,d,e"
End Sub

Public Sub S_Split(enstreng As String)
Dim i As Long
Dim mitarray() As String
  mitarray = Split(enstreng, ",")
  For i = LBound(mitarray) To UBound(mitarray)
    MsgBox mitarray(i)
  Next
End Sub
Avatar billede jytte Nybegynder
31. august 2004 - 09:50 #5
Hvad er forkellen på at sætte "require Variable Declaration" og at skrive option explicit (som jeg ellers troede kun blev brugt i ASP) ?
Avatar billede martin_moth Mester
31. august 2004 - 10:49 #6
Hvis du ikek har require variable declaration slået til, kan du lave det stunt jeg beskrev med at stave en variabel forkert, og den så opretter en ny tom variabel med det forkerte navn i stedet for at brokke sig.

Og det er jo det samme option explicit gør - men "The Option Explicit statement is used at the module level only.", som der står på msdn. Hmmm - der er måske flere forskelle?

Jeg er lidt i tvivl - er spørgsmålet besvaret?
Avatar billede jytte Nybegynder
02. september 2004 - 08:41 #7
martin_moth>
Kan du så ikke lige forklare mig hvad module level only er ? -- hvornår risikerer man at option explicit ikke er tilstrækkeligt ?
Avatar billede martin_moth Mester
02. september 2004 - 10:30 #8
module level gælder for kode, der er skrevet i et modul

Aner ikke hvornår Option Explicit ikke er tilstrækkeligt, men det kan du jo læse om på msdn
Avatar billede sjh Nybegynder
02. september 2004 - 13:11 #9
Jytte du kan bruge Option Explicit over det hele.. Form, Module, Class osv..

Bruger du Option Explicit i dit project skal du huske at Dime alle dine variabler, ellers vil du få fejl når du køre din kode.


fx.
hvis du har Option Explicit i topprn af en Form eller Module vil du få fejl i (k) fordi den ikke er defineret med Dim eller Private osv..

  for k = 0 to 5
  ...
  next

Den kunne se sådan ud:

Dim k As Long
  for k = 0 to 5
  ...
  next

eller uden "As Long" men det er bedst at fortælle hvad type det er (hurtigere kode) I ASP kan men ikke angive nogle type, der er alle variabler en variant, det ville den også være i vb hvis du bare skriver: Dim k

:D
Avatar billede jytte Nybegynder
02. september 2004 - 15:41 #10
Mange take for hjælpen.
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