webForumDet fria alternativet

Private Sub

ASPur ASP

10 svar · 610 visningar · startad av webbSAJTEN

webbSAJTENMedlem sedan jan. 2002992 inlägg
#1

Denna kod (utan tvåan) använder jag för att få ut måtten på bilderna på min sida.
Jag skulle behöva hämta måttet två gånger.
Jag har bytt ut alla "dimar" och sattit en tvåa efteråt men jag får felmess:

Syntax error 

/pictures.asp, line 275 

Private Sub GetJPGSize(width2, height2, imagepath2)
--------^

Är det någon som förstår varför?

Dim width2, height2
Call GetJPGSize(width2, height2, Server.MapPath("/bilder/"&RS2("strFile")&""))

Private Sub GetJPGSize(width2, height2, imagepath2)
  Dim oFile2 'As Scripting.File
  Dim oStream2 'As Scripting.TextStream
  Dim oFSO2 'As Scripting.FileSystemObject
  Dim nDummy2 'As Byte
  
  Set oFSO2 = CreateObject("Scripting.FileSystemObject")
  Set oFile2 = oFSO.GetFile(imagepath2)
  Set oStream2 = oFile.OpenAsTextStream

  Set oFile2 = Nothing
  Set oFSO2 = Nothing
  
  Call oStream2.Read(2)
  
  Do
    Do
      nDummy2 = Asc(oStream2.Read(1))
      If nDummy2 = 255 Then
        Exit Do
      End If
    Loop
    
    Do
      nDummy2 = Asc(oStream2.Read(1))
      If nDummy2 <> 255 Then
        Exit Do
      End If
    Loop
    
    Select Case nDummy2
      Case 192, 193, 194, 195, 197, 198, 199, 201, 202, 203, 205, 206, 207
        Call oStream2.Read(3)
        nDummy2 = Asc(oStream2.Read(1))
        height2 = CLng(nDummy2 * 256)
        nDummy2 = Asc(oStream2.Read(1))
        height2 = height2 + CLng(nDummy2)
        nDummy2 = Asc(oStream2.Read(1))
        width2 = CLng(nDummy2 * 256)
        nDummy2 = Asc(oStream2.Read(1))
        width2 = width2 + CLng(nDummy2)
        Exit Do
      Case Else
        nDummy2 = Asc(oStream2.Read(1))
        width2 = CLng(nDummy2 * 256)
        nDummy2 = Asc(oStream2.Read(1))
        width2 = width2 + CLng(nDummy2)
        Call oStream2.Read(width2 - 3)
    End Select
  Loop
  oStream2.Close
  Set oStream2 = Nothing
End Sub
@ndersMedlem sedan juni 200032 969 inlägg
#2

Edit; fel.

Men; du menar inte att du har två subrutiner med samma namn?

webbSAJTENMedlem sedan jan. 2002992 inlägg
#3

Menar du att GetJPGSize är namnet?

@ndersMedlem sedan juni 200032 969 inlägg
#4

Ja

webbSAJTENMedlem sedan jan. 2002992 inlägg
#5

Jag har testat att lägga till en tvåa efteråt med samma resultat :(

@ndersMedlem sedan juni 200032 969 inlägg
#6

Varför ska du ha två subrutiner som gör samma sak? Ha en, kalla på den två gånger.

webbSAJTENMedlem sedan jan. 2002992 inlägg
#7

Hmm..
Det är så att jag har en stor bild på en sida..
På den stora bilden måste jag veta höjden och bredden för att dem skall visas bäst..
Under den finns det många mindre bilder som hämtas ur en databas och på varje bild måste jag veta storleken för att dom inte skall bli utdragna m.m.

@ndersMedlem sedan juni 200032 969 inlägg
#8

Jo, men varför ska du ha två subrutiner?
Kan du inte bara kalla på din enda sub fler gånger?

webbSAJTENMedlem sedan jan. 2002992 inlägg
#9

Hur skall jag göra de? :)

solbulleMedlem sedan mars 20015 287 inlägg
#10

Du kalla rpå den på precis samma sätt som du kallar på den första gången, fast du skickar in andra värden på dina variabler.

Call GetJPGSize(width2, height2, Server.MapPath("/bilder/"&RS2("strFile")&""))

Typ andra mått samt en annan sökväg till bilden.
Det är ju liksom det som är den största vitsen med att lägga kod i subrutiner eller funktioner - att återanvända kod.

webbSAJTENMedlem sedan jan. 2002992 inlägg
#11

Jag sall testa det, tack!!

128 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)