[ASP] FSO Sort probleem

Pagina: 1
Acties:

  • Denga
  • Registratie: September 2000
  • Laatst online: 10-04 15:02

Denga

The riding never stops....

Topicstarter
Ik heb onderstaande code, deze haalt uit een map de mapnamen en geeft deze weer. Nu is het zo dat ik deze namen graag gesorteerd heb op Folder.DateCreated ...
Nu heb ik het dus zo opgelost, maar dit functioneerd op een of andere manier niet...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<%
    pics = "blaat.asp" 
    ShowSub = request("ShowSub")
    ShowPic = request("ShowPic")
    strPathInfo = Request.ServerVariables("PATH_INFO")
    strPhysicalPath = Server.MapPath(strPathInfo)
    strPath = "./fotomap/"
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(Server.MapPath(strPath))
    Set objFolderContents = objFolder.Files
                                
    For each Folder in objFolder.SubFolders
                
    if Left(Folder.Name,1)<>"_" then
        Response.write "<a href="
        if ShowSub=Folder.Name then
            Response.Write ""
        end if
        Response.Write""& pics & "?ShowSub="
        Response.Write(Replace(Folder.Name, " ", "%20"))
        response.write ">"
        Response.Write(Folder.Name & "</a><br>")
    end if
                              
    next
                              
    Sort = "Folder.DateCreated ASC "
                                                                                                                  
    Set objFSO = nothing
    Set objFolder = nothing
    Set objFolderContents = nothing
%>

Never eat yellow snow...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10-05 18:52

gorgi_19

Kruimeltjes zijn weer op :9

Inderdaad; je creert een variabele met de waarde: "Folder.DateCreated ASC "

Zie
http://www.roubaixinterac.../Sort_Folder_Contents.asp

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Denga
  • Registratie: September 2000
  • Laatst online: 10-04 15:02

Denga

The riding never stops....

Topicstarter
Maar als ik doe:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<%
    pics = "blaat.asp" 
    ShowSub = request("ShowSub")
    ShowPic = request("ShowPic")
    strPathInfo = Request.ServerVariables("PATH_INFO")
    strPhysicalPath = Server.MapPath(strPathInfo)
    strPath = "./fotomap/"
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFolder = objFSO.GetFolder(Server.MapPath(strPath))
    Set objFolderContents = objFolder.Files
                                
    For each Folder in objFolder.SubFolders
                
    if Left(Folder.Name,1)<>"_" then

    rsFSO("Datum") = Folder.DateCreated

         Response.write "<a href="
         if ShowSub=Folder.Name then
             Response.Write ""
         end if
         Response.Write""& pics & "?ShowSub="
         Response.Write(Replace(Folder.Name, " ", "%20"))
         response.write ">"
         Response.Write(Folder.Name & "</a><br>")
    end if
                              
    next
                              
    Sort = "Datum ASC "
                                                                                                                        
    Set objFSO = nothing
    Set objFolder = nothing
    Set objFolderContents = nothing
%>


Dan geeft ie de foutmelding:
code:
1
2
3
4
5
Microsoft VBScript runtime error '800a000d' 

Type mismatch: '[undefined]' 

/blaat.asp, line 94


Heb wel in de code ergens Dim rsFSO staan hoor... ;)

Never eat yellow snow...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10-05 18:52

gorgi_19

Kruimeltjes zijn weer op :9

En wat is regel 94?

En ik had het over:
ASP:
1
Sort = "Datum ASC "

Wat an sich een beetje sutteloos staat te zijn :)

Maar heb je die link al bekeken hoe je kan sorteren?

[ Voor 18% gewijzigd door gorgi_19 op 06-03-2005 22:49 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Denga
  • Registratie: September 2000
  • Laatst online: 10-04 15:02

Denga

The riding never stops....

Topicstarter
Nu begrijp ik er helemaal niks meer van...

Ja ik heb wel naar die link gekeken maar die maakt gebruik van een recordset en dat doe ik niet...

en wat betreft de foutmelding, die slaat op: rsFSO("Datum") = Folder.DateCreated

Maar ik begrijp nog steeds niet hoe en wat, zou je eens wat duidelijker willen zijn Gorgi?

Never eat yellow snow...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10-05 18:52

gorgi_19

Kruimeltjes zijn weer op :9

En waar declaleer je dan de array rsFSO?

En als je geen recordsets gebruikt, dan gebruik je een hele vreemde naming convention. En waarom wil je geen gebruik maken van een recordset? Wil je dan een eigen Quicksort implementatie maken?
Denga schreef op maandag 07 maart 2005 @ 01:56:
Maar ik begrijp nog steeds niet hoe en wat, zou je eens wat duidelijker willen zijn Gorgi?
Je hebt een compleet uitgewerkt voorbeeld, inclusief documentatie, in die link staan :) Duidelijker kan en ga ik niet zijn :)

[ Voor 41% gewijzigd door gorgi_19 op 07-03-2005 02:03 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Denga
  • Registratie: September 2000
  • Laatst online: 10-04 15:02

Denga

The riding never stops....

Topicstarter
Nou het probleem is dat als ik een test asp pagina maak aan de hand van de link die je me gegeven hebt geeft ie een foutmelding op de regel met:

code:
1
2
3
4
5
6
7
8
9
With rsFSO.Fields
    .Append "Name", adVarChar, 200
    .Append "Type", adVarChar, 200
    .Append "DateCreated", adDate
    .Append "DateLastAccessed", adDate
    .Append "DateLastModified", adDate
    .Append "Size", adInteger
    .Append "TotalFileCount", adInteger
  End With


En dan geeft ie de foutmelding op de 1e regel met with rsFSO.Fields met een 'Expected Statement'

Never eat yellow snow...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10-05 18:52

gorgi_19

Kruimeltjes zijn weer op :9

Hoe heb je rsFSO gedeclareerd?

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Denga
  • Registratie: September 2000
  • Laatst online: 10-04 15:02

Denga

The riding never stops....

Topicstarter
ik heb 'm letterlijk gecopy pasted, dus op die link van je staat bovenaan de rs al gedeclareerd als zijnde:

code:
1
Dim rsFSO, objFSO, objFolder, File

Never eat yellow snow...


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 10-05 18:52

gorgi_19

Kruimeltjes zijn weer op :9

Toevallig ook
ASP:
1
2
'create an ADODB.Recordset and call it rsFSO
  Set rsFSO = Server.CreateObject("ADODB.Recordset")

meegenomen? En alle functies en if-statements netjes afgesloten?

[ Voor 16% gewijzigd door gorgi_19 op 07-03-2005 02:49 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Denga
  • Registratie: September 2000
  • Laatst online: 10-04 15:02

Denga

The riding never stops....

Topicstarter
Alles klopt mijns inziens...

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<%
    Function kc_fsoFiles(theFolder, Exclude)
    
    Dim rsFSO, objFSO, objFolder, File
  Const adInteger = 3
  Const adDate = 7
  Const adVarChar = 200
  
  
  Set rsFSO = Server.CreateObject("ADODB.Recordset")
  Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
  Set objFolder = objFSO.GetFolder(theFolder)
  
  Set objFSO = Nothing
  
  With rsFSO.Fields
    .Append "Name", adVarChar, 200
    .Append "Type", adVarChar, 200
    .Append "DateCreated", adDate
    .Append "DateLastAccessed", adDate
    .Append "DateLastModified", adDate
    .Append "Size", adInteger
    .Append "TotalFileCount", adInteger
  End With
  rsFSO.Open()
    
  For Each File In objFolder.Files
    If (Left(File.Name, 1)) <> Exclude Then 
      rsFSO.AddNew
      rsFSO("Name") = File.Name
      rsFSO("Type") = File.Type
      rsFSO("DateCreated") = File.DateCreated
      rsFSO("DateLastAccessed") = File.DateLastAccessed
      rsFSO("DateLastModified") = File.DateLastModified
      rsFSO("Size") = File.Size
      rsFSO.Update
    End If
  Next
    
  rsFSO.Sort = "Type DESC "

  Set objFolder = Nothing

  rsFSO.MoveFirst()
  Set kc_fsoFiles = rsFSO
    
    End Function
    
    Dim strFolder : strFolder = Server.MapPath("./rde")
    
    Dim rsFSO 
    
    Set rsFSO = kc_fsoFiles(strFolder, "_")
        While Not rsFSO.EOF
%>
    <p><%= rsFSO("Name").Value %> | <%= rsFSO("Type").Value %></p>
<%
  
        rsFso.MoveNext()
    Wend
  
  rsFSO.close()
  Set rsFSO = Nothing
%>


en de foutmelding is:

code:
1
2
3
4
5
6
7
Microsoft VBScript compilation error '800a0400' 

Expected statement 

/testfso.asp, line 16 

With rsFSO.Fields

Never eat yellow snow...


  • Denga
  • Registratie: September 2000
  • Laatst online: 10-04 15:02

Denga

The riding never stops....

Topicstarter
niemand?

Never eat yellow snow...

Pagina: 1