gelki Posted September 20, 2008 Share Posted September 20, 2008 Jag undrar om det är någon som kan sätta ihop nedanstående kod så fillistan sorteras efter fil typ. Just nu visar den bara slumpmässigt lista på alla associerade filer. Koden nedan hämtar alla filer i en mapp men filer som ingår i en specifik artikel. T.ex om vi har en produkt som har arrtikelnr 1234 så ska alla associerade filer som börjar på 1234 hämta och presentera desa filer i en sorterad lista efter namn. T.ex kan en fil som ligger i den mappen heta: 1234_Instruktioner.pdf underscore "_" efter artikelnummer blir en sorts splitter. Vitsen med detta system är att kunna ha vilken filändelse som helst i systemet. Man ska kunna lägga ut vilken filtyp som helst. Ja just nu så av select listan så framgår de att bara några filtyper har en ikon associerad med filtypen. Men det är ju7 bara att utöka. Så Problemet här är en ordnad lista efter filtyp. Är det 3 st excel filer så ska ju dessa vara grupperade för sig. O.s.v . '#- Hämta filer som är ssoccierade med artikelnummer -# '#- Om inte inloggad skydda dessa -# Whichfolder=server.mappath("\") &"../productfiles/" 'Dim fsq, fx, f1, fc Set fsq = CreateObject("Scripting.FileSystemObject") Set fx = fsq.GetFolder(Whichfolder) Set fc = fx.files x=0 For Each f1 in fc MyFileArray= Split(f1.name,"_") FileArtnr=MyFileArray(0) 'artikelnummer if x_produkter_ID = clng(FileArtnr) or clng(FileArtnr) = x_Produkter_Group_produktgrupper_ID then 'om artikelnummer är samma som början på filnamnet så tafram.. 'if x_produkter_ID = clng(FileArtnr) then 'om bara filer associerade med artikelnummer ska gälla FileName=MyFileArray(1) 'filens namn MyFileArray2= Split(FileName,".") OnlyFileName=MyFileArray2(0) 'filnamn utan filtyp OnlyFileType=MyFileArray2(1) 'fil typ Select Case Ucase(OnlyFileType) Case "PDF" FileIcon="<img src='grafik/ikoner/pdf.gif'>" Case "DOC" FileIcon="<img src='grafik/ikoner/doc.gif'>" Case "XLS" FileIcon="<img src='grafik/ikoner/xls.gif'>" Case "ZIP" FileIcon="<img src='grafik/ikoner/zip.gif'>" Case "RAR" FileIcon="<img src='grafik/ikoner/zip.gif'>" Case "JPG" FileIcon="<img src='grafik/ikoner/jpg.gif'>" Case Else FileIcon="<img src='grafik/ikoner/finns_ej.gif'>" End Select 'samla ihop strängen showfiles=showfiles&FileIcon & " " & "<a href='?download="&f1.name&"&artnr="&x_produkter_ID&"'>"&OnlyFileName&"</a><br>" x=x+1 End if 'if auktioner_produkter_ID = FileArtnr then Next "Gör så gott du kan. Det du inte kan köper du :-)" Link to comment Share on other sites More sharing options...
Anjuna Moon Posted September 20, 2008 Share Posted September 20, 2008 Du har ett par möjligheter: - Använd en egen funktion i vbscript för att sortera arrayer (ex. en QuickSort, går att hitta enkelt via Google) - Använd en underliggande .Net-klass (förutsätter att servern har Net Framework installerat) och använd en arraylist. Ex. Set oArrayList =CreateObject("System.Collections.ArrayList" ) Denna har redan en Sort-metod implementerad. - Sortera på klientnivå istället, javascript-arrayer har också en sort()-metod implementerad. Här får du då först sortera arrayen och sen via javascript skriva ut innehållet i listan. [inlägget ändrat 2008-09-20 10:00:51 av Anjuna Moon] Link to comment Share on other sites More sharing options...
gelki Posted September 20, 2008 Author Share Posted September 20, 2008 Tack! NET. lösningen + javascript är uteslutet. Kvar blir VB med klassisk ASP. Jag har kollat på olika sådana funktioner i vbscript, men fattar nada hur man implenterar de på min kod. Har inte jobbat med just sortering på filnivån. Så quicksort + min kod hur gör man det? kolla denna när det gäller quicksort! [inlägget ändrat 2008-09-20 10:16:39 av gelki] Link to comment Share on other sites More sharing options...
Anjuna Moon Posted September 20, 2008 Share Posted September 20, 2008 Följande lägger in dina filnamn i en Dictionary, med filändelsen som nyckel. Därefter sorteras Dictionaryn efter nycklarna (filändelserna) och slutligen används Dictionaryn för att skapa din output http://rafb.net/p/LDWxvw12.html Mer än så hinner jag inte göra åt dig, sitter själv med arbete som måste bli klart under helgen. [inlägget ändrat 2008-09-20 10:47:49 av Anjuna Moon] Link to comment Share on other sites More sharing options...
gelki Posted September 20, 2008 Author Share Posted September 20, 2008 Tack! hmm ganska omfattande kod i funktionen ser jag. Fick fel på rad med: "dict.Add OnlyFileType,f1.Name" säger att: This key is already associated with an element of this collection. Jag väntar gärna tills du är färdig med ditt helg arbete. För jag fattar nada av felmeddelandet. Kanske någon annan som vet vad som är? "Gör så gott du kan. Det du inte kan köper du :-)" Link to comment Share on other sites More sharing options...
Cluster Posted September 20, 2008 Share Posted September 20, 2008 http://search.idg.se/eforum/default.asp?allaSajter=false&eforum=true&soktext=Sortera+fso&rubrik=&skrivetav=&startyear=1995&startmonth=01&startday=01&endyear=2008&endmonth=09&endday=20&FORUM=316&sortera=nyaste&x=20&y=5 http://www.google.com/search?q=%2Basp+-%22.net%22+FileSystemObject+%2Bsort http://www.roubaixinteractive.com/PlayGround/FSO/Sort_Folder_Contents.asp /Cluster I do not fear computers. I fear the lack of them > http://eforum.kicks-ass.net <- [inlägget ändrat 2008-09-20 14:19:41 av Cluster] Link to comment Share on other sites More sharing options...
Anjuna Moon Posted September 20, 2008 Share Posted September 20, 2008 Jag tänkte inte tillräckligt långt där. Pröva att göra följande ändringar: - Rad 14: dict.Add f1.Name, OnlyFileType - Rad 17: SortDictionary dict, 2 - Rad 21: name=key [inlägget ändrat 2008-09-20 12:02:41 av Anjuna Moon] Link to comment Share on other sites More sharing options...
gelki Posted September 20, 2008 Author Share Posted September 20, 2008 OMG! Det fungerar! jag bugar och tackar för din kod Anjuna Moon! Både du och Cluster är iallafall mina hjältar. Kan jag göra någonting för er grabbar så..hojta till. Tack ännu engång! "Gör så gott du kan. Det du inte kan köper du :-)" Link to comment Share on other sites More sharing options...
gelki Posted September 20, 2008 Author Share Posted September 20, 2008 Tack Cluster för länkarna. Gör alltid stor nytta att få svar från dig! Link to comment Share on other sites More sharing options...
Anjuna Moon Posted September 20, 2008 Share Posted September 20, 2008 jag bugar och tackar för din kod Anjuna Moon! Ingen orsak! (Jag var rätt stressad igår, så jag är lite halvförvånad att det inte smög sig in fler småfel. Ibland går det tydligen per automatik, hemska tanke =) Kan jag göra någonting för er grabbar så..hojta till. Tja, kunde du införa 32-timmars dygn på jorden så vore jag tacksam, annars räcker det gott med poängen =) Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.