Avatar billede vanni Nybegynder
26. maj 2003 - 08:10 Der er 14 kommentarer og
1 løsning

filelistbox sortering

Hej

Kan det lade sig gøre at sortere filerne i en filelistbox f.eks. efter dato eller størrelse på en simpel måde?

Mvh. Vanni
Avatar billede dk_akj Nybegynder
26. maj 2003 - 09:59 #1
Sæt sorted under properties = true

//akj
Avatar billede dk_akj Nybegynder
26. maj 2003 - 10:00 #2
sorry, jeg kunne ikke det hele af dit spørgsmål da jeg svarede.

//akj
Avatar billede dk_akj Nybegynder
26. maj 2003 - 10:06 #3
Du kan finde størrelser mm.  på filer med filesystemobject

Set fso = CreateObject("Scripting.FileSystemObject")
Set folderObject = fso.GetFolder("c:\temp")
Set filesObject = folderObject.Files

For Each file In filesObject
    List1.AddItem file.Name & " - " & file.Size & " - " & file.datelastmodified
Next

Set fileObject = Nothing
Set folderObject = Nothing
Set fso = Nothing

//akj
Avatar billede dk_akj Nybegynder
26. maj 2003 - 10:30 #4
Jeg faldt lige over noget du måske kan bruge.

http://www.mvps.org/vbnet/index.html?code/fileapi/fsoapicompare.htm

//akj
Avatar billede martin_moth Mester
26. maj 2003 - 12:00 #5
Du kan som dk_akj foreslår finde datoerne, og så sortere efter dem. Der er mange eksempler på sortering på E (se sidst i mit svar)

Alternativt, og lidt smartere, synes jeg, kan du bruge ListView i stedet for FileListBOx- den har jeg selv brugt til at lave min egen "stifinder". Så får du headers, der er klikbare, ganske som i stifinderen, hvís du har slået detaljer til.

Du finder den sikkert ikke på din normale toolbox, så du må tilføje den (Ctrl+T), den ligger hos mig i Microsoft windows common controls 5.0 (SP2)

Når du har gjort det, så smid en FileList (File1) på din form sammen med dit Listview (ListView1) på din form, og indsæt koden her, så har du det du ønsker:

Private Sub Form_Load()
 
  Dim lngByte As Long
  Dim itmX
  Dim i

  'Indsætter kolonner i Listview1
  With ListView1
    .View = 3
    .ColumnHeaders.Add , , "Navn", 2000
    .ColumnHeaders.Add , , "Størrelse", 1100, lvwColumnRight
  End With
 
  'Nulstiller Listview1
  ListView1.ListItems.Clear
 
  'Indlæser filer i Listview1
  For i = 0 To File1.ListCount - 1
   
    'Skriver filnavn i listview1
    Set itmX = ListView1.ListItems.Add(, , File1.List(i))
   
    'Skriver filstørrelse
    lngByte = FileLen(File1.Path & "\" & File1.List(i))
    If (lngByte / 1024) < 1 Then
      itmX.SubItems(1) = "< 1 KB"
    Else
      itmX.SubItems(1) = Round(lngByte / 1024) & " KB"
    End If
  Next i
 
  Set itmX = Nothing
End Sub

NB: Ovenstående melder naturligvis fejl hvis File1 står i roden af et drev pga. den dobbelte \  ...det har du sikkert selv styr på at rette ;o)

Mht. sorteringen, skal den jo lige i den event der bliver triggered, når der klikkes på en kolonneoverskrift (som i stifinderen). Eksempler på sorteringsalgoritmer er at finde her: http://www.eksperten.dk/kat/5?searchtype=txt&words=sorter&method=and&sort=score&catid=5
Avatar billede vanni Nybegynder
26. maj 2003 - 17:40 #6
26/05-2003 09:59:47 akj: Jeg kan ikke finde sorted under properties?

Mvh. Vanni
Avatar billede martin_moth Mester
26. maj 2003 - 17:58 #7
vanni:

Bruger du "min" løsning (med Listview) er der en property der hedder "Sorted" og en der hedder "Sortindex". Dvs. et er noget vrøvl når jeg skriver at du kan finde sorteringsalgoritmer på E - det er slet ikke nødvendigt :o)

Så må du jo overveje hvad for en kontrol du vil bruge - Listview eller FileListBox - FileListBOx har ikke en egenskab der hedder "sorted"
Avatar billede martin_moth Mester
26. maj 2003 - 18:00 #8
vanni: jeg smider gerne et "komplet" og simpelt eksemel på hvordan du bruger og sorterr i Listview :o)
Avatar billede vanni Nybegynder
26. maj 2003 - 18:17 #9
martin: Meget gerne et simpelt eksempel.
Mvh. Vanni
Avatar billede vanni Nybegynder
28. maj 2003 - 08:31 #10
Vanni
Avatar billede dk_akj Nybegynder
28. maj 2003 - 08:32 #11
Øhmmm. Hvorfor tager du points selv ??

//akj
Avatar billede martin_moth Mester
28. maj 2003 - 09:48 #12
wups - glemte det eksempel jeg lovede. Er det ligemeget nu, eller?
Avatar billede vanni Nybegynder
28. maj 2003 - 18:28 #13
26/05-2003 17:40:11 akj: Jeg fik desværre ikke noget svar.

Martin: Jeg har løst problemet. :o)

Mvh. Vanni
Avatar billede martin_moth Mester
28. maj 2003 - 18:30 #14
Jeg synes nu ellers du fik mange svar...

Nå - bare det virker :o)
Avatar billede vanni Nybegynder
28. maj 2003 - 19:29 #15
martin: Det var akj, der ikke gav svar. Retfærdig skal jeg sige, at du ledte mig på rette spor.

Mvh. Vanni :o)
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