Avatar billede dingemann Novice
06. december 2006 - 10:25 Der er 6 kommentarer og
1 løsning

[.NET 2.0] Emigrering af FSO fra ASP til ASP.NET

hey der - jeg sidder med en webusercontroller der skal returnere noget CSS. Grunden til at CSS'et ikke 'bare' kan smides i et normalt CSS er at det indeholder ASP-kode der generere CSS'et hver gang siden loades. Derfor havde CSS'et oprindeligt også en .asp-extension men ASP.NET 2.0 understøtter ikke .asp istedet for .css længere og jeg er nu tvunget til at ommøblere min kode for samme resultat.
Jeg har derfor besluttet at smide den del af CSS'et som er randomgenereret over i en webusercontroller der så kaster de nødvendige CSS-styles tilbage til default.aspx

Men den ASP-funktion der oprindeligt lå i CSS'et og autogenerede kode skal derfor også emigreres over i webusercontrolleren og jeg kan ikke rigtig se mig ud af det - eller jo. Jeg har splittet webusercontrolleren i to og jeg kunne jo i princippet bare drøne randomfunktionen ud i HTML-delen af webusercontrolleren men jeg ser det seje i at lave en getters/setters (Public Property bla bla) og til det formål skal den gamle FSO-ASP-kode laves til ASP.NET 2.0 - og spørgsmålet er så om det er muligt?

Funktionen er som følger:


<%
Function randomPictureGenerator(path)
    Randomize()
    Set filesys = CreateObject("Scripting.FileSystemObject")
    Set demofolder = filesys.GetFolder(Server.MapPath(path))
    Set folcoll = demofolder.SubFolders
    Set demofile = filesys.GetFolder(Server.MapPath(path))
    Set fileColl = demofile.Files
    'For Each file in fileColl
    '    If Right(file.Name, 3) = "gif" Then
    '        i = i + 1   
    '    End If
    'Next
    'r = int((i-1 +1 )* Rnd() + 1)
    'randomPictureGenerator = r
    For Each file in fileColl
        i = i + 1
        longString = longString & file.Name & "/"
    Next

    r = int(i*rnd())
   
    sArray = longString
    aArray = Split(sArray, "/")
    randomPictureGenerator = aArray(r)   
End Function


%>
Avatar billede shadowdance Nybegynder
06. december 2006 - 12:27 #1
Jeg er forvirret. Spørger du kun ind til afløseren til FSO i ASP.NET? For det findes i form af System.IO.DirectoryInfo og System.IO.FileInfo.
Avatar billede dingemann Novice
06. december 2006 - 12:53 #2
heh :P jeg har liiiidt svært ved at svare for hvis jeg vidste svaret så kendte jeg til svaret på hele mit spørgsmål. Men den funktion oven over er ASP - ren ASP.
Og jeg vil så vide hvordan den oversættes til ASP.NET 2.0 hvis muligt. Jeg ved godt det på ingen måde er det samme men et eller andet sted så vil jeg da mene, når jeg kigger på FSO-delen, at den kan laves i ASP.NET 2.0 - og ja det er nok en del af FileInfo men hvordan omskrives toppen af koden:

    Set filesys = CreateObject("Scripting.FileSystemObject")
    Set demofolder = filesys.GetFolder(Server.MapPath(path))
    Set folcoll = demofolder.SubFolders
    Set demofile = filesys.GetFolder(Server.MapPath(path))
    Set fileColl = demofile.Files
Avatar billede thrytter Nybegynder
06. december 2006 - 13:56 #3
Dim di As System.IO.DirectoryInfo = New System.IO.DirectoryInfo(Server.MapPath("~/"))
Dim dirs As System.IO.DirectoryInfo() = di.GetDirectories()
Dim diNext As System.IO.DirectoryInfo

For Each diNext In dirs     
  If diNext.GetFiles("*.aspx").Length > 0 Then
    Me.ddlFolderList.Items.Add(New ListItem(diNext.Name, diNext.Name))
  End If
Next

Skulle fylde en DropDownList med mapper som indeholder .aspx filer
Avatar billede dingemann Novice
06. december 2006 - 15:06 #4
fantastisk - jeg prøver når jeg kommer hjem - sidder til forelæsning på uni - men hopper frådende over det når jeg kommer hjem :) men det ser ud til at være det jeg ledte efter
Avatar billede dingemann Novice
13. december 2006 - 22:25 #5
fandt en løsning ved at sætte mig enormt ind i skidtet - men jeg giver gerne point alligevel. Sååehm jeg lukker den lørdag morgen hvis ingen vil ha point inden :)

Iøvrigt nåede jeg frem til:


    Public Property randomPictures(ByVal path As String, ByVal typeOfExtension As String)
        Get
            myfiles = System.IO.Directory.GetFiles(Server.MapPath(path), "*." & typeOfExtension)
            r = myfiles.Length
            i = randomNumber(r) 'lige en note: en funktion der laver randomtal med maxlimet på r
            _randompictures = System.IO.Path.GetFileName(myfiles(i))
            Return _randompictures
        End Get
        Set(ByVal value)
            'randomPictures(par1, par2) = value

        End Set
    End Property
Avatar billede thrytter Nybegynder
14. december 2006 - 17:51 #6
svar
Avatar billede dingemann Novice
14. december 2006 - 17:58 #7
tis
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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