Avatar billede zombien Juniormester
28. maj 2008 - 09:08 Der er 10 kommentarer og
1 løsning

Sortering af arrays

Hej Eksperten...

Findes der en god og enkel måde at sortere et array efter dato???
hvis ja, nogle der så evt. vil vise et eksempel, fordi jeg er igang med at få gråhår i hovedet over dette :-D
Avatar billede fennec Nybegynder
28. maj 2008 - 09:23 #1
Der er et script her:
http://www.eksperten.dk/spm/171498
Avatar billede fennec Nybegynder
28. maj 2008 - 09:28 #2
I stedet for et array kunne du også have opbygget dig et recordset. Så får du nemlig adgang til dennes sort() funktion (samt alle de andre). Der er et eks her:
http://www.roubaixinteractive.com/PlayGround/FSO/Sort_Folder_Contents.asp

Den opbygger godt nok et recordset til filsortering, man man kunne have smidt hvad som helst af data i.
Avatar billede zombien Juniormester
28. maj 2008 - 09:44 #3
Den ser da ellers noget lang ud, findes der ingen andre metoder :-S

kan man så ikke bare sætte den lettere alfabetisk op???
og har allerede lavet en med recordset :-D men vil også gerne have den i arrays
Avatar billede fennec Nybegynder
28. maj 2008 - 10:21 #4
Hvis du vil sortere arrays hurtigt bliver du nød til at benytte en af de sorteringsalgoritmer der findes (quicksort, bubblesort osv.). De scripts du kan finde på nette er næsten altid klar til direkte anvendelse, så du behøver ikke forstå hvordan de virker. Det script jeg har linket til skal du bare smide i en fil, også inkludere på den side det skal bruges. Derefter kalder du bare funktionen:

call QSort2(ditArray, 0, 0, ubound(ditArray))

Efter kaldet er dit array sorteret.
Avatar billede zombien Juniormester
28. maj 2008 - 10:29 #5
okay, det ser noget forvirrende ud det quicksort :-S

mit array bliver bygget op sådan her inde i en funktion
i = 0
For each file in objFolder.Files
    set filer(i) = file
    i = i + 1
Next

hvordan får jeg lige dette sorteret...
Avatar billede fennec Nybegynder
28. maj 2008 - 10:44 #6
Ooooo, se det var noget helt andet. Der har du et array af filer. Det finder du ikke en sorteringsfunktion til... Der bliver du nød til at læse op på sorteringsfunktioner også skrive en kode selv. Eller også må du lave dit filarray om til at "almindelige" array eller et recordset som beskrevet i eksemplet.
Avatar billede zombien Juniormester
28. maj 2008 - 10:47 #7
nu det er i en funktion, kan man så ikke lave sådan GetFolder(strfolder,Date(now))

og må en eller anden måde sortere ned efter fra dagens dato
Avatar billede fennec Nybegynder
28. maj 2008 - 11:41 #8
Af den smule af din kode jeg har set, så tror jeg ikke det kan løses på en nem måde.

Jeg kan ikke se en måde at erstatte
For each file in objFolder.Files

med en:
For each file in GetFolder(strfolder,Date(now))

Eneste jeg lige kan komme på er med et 2 dimisionalt array, hvor første del er en dato (den du sortere efter) og sidste del er et file objekt.

Noget i denne stil:

dim fileArr(xx,1)

For each file in objFolder.Files
    fileArr(i,0) = file.File.DateCreated
    set filerArr(i,1) = file
    i = i + 1
Next

Derefter bruger du QSort2 funktionen på fileArr. Også kan den evt løbes igennem for at skabe et nyt files objekt med alle filerne, som så kan returneres.

Dette er dog teoretisk, så jeg er ikke sikker på det kan lade sig gøre.

Hvis vi kan se meget mere af din kode, kan vi bedre forstå hvad du vil, og hvor/hvordan koden skal ændres til at give det ønskede resultat.
Avatar billede bauerdata Nybegynder
09. juni 2008 - 08:25 #9
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# Licence GPL
# se http://support.microsoft.com/kb/276494 der er beskrevet hvordan du
# opsætter din asp server til at bruge python

import os

def sortfiles( path="." ):
    files = [ path + "/" + file for file in os.listdir( path ) ]
    files.sort( lambda x, y:cmp( os.path. getmtime(x), os.path.getmtime(y) ) )
    return files


if __name__ == '__main__':
    print sortfiles("..")
Avatar billede fennec Nybegynder
09. juni 2008 - 09:05 #10
Så bauerdata er har stadig for at vise os python kode i et ASP (VisualBasic) forum. Jeg har vist zombien flere måder at løse problemet på, men siden de ikke virker, så skyldes det den måde hans kode fungere på. Hvorfor jeg også bad ham om at vise os mere af hans kode i min sidste post.

At vise os en python kode, som udskriver filer sorteret løser ingen ting. Det kan lave lige så nemt i VB. Og du vil aldrig få den kode til at fungere med zombien's eksisterende kode, så du bedre ham faktisk om at omskrive HELE hans kode til python. Et sprog som han helt sikkert ikke kender.
Avatar billede zombien Juniormester
16. august 2010 - 18:05 #11
lukket
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