Odium: ass. Array in Visual Basic...

Morgähn,

ich habe folgendes Problem.
Ich programmiere in VB-Script ein kleines Admintool, das in einem angegebenen Ordner die Unterordner mit mehr als x MB auflistet. So eine Art Speicherverbrauchchart.
Zum Sortieren der Unterordnergrößen benutze ich eine kleine ocx erweiterung, der ich einen ordner übergebe und mir dann sortieren lasse. leider kann ich dieser erweiterung keinen weiteren parameter als den ordner selbst übergeben. Da ich als Nichtadmin verschiedene Ordnerberechtigungen nicht habe, kann es passieren, das die ordnergröße nicht abrufbar ist. diese ordner würde ich gern von der auswahl und sortierung ausschliessen.
Mit der CCE von Microsoft kann ich per VisualBasic eigene VB-Script Objekte programmieren. Diese benutzen meines wissens den vollen VisualBasic Sprachumfang. Meine Frage ist nun: Gibt es in Visual-Basic eine Art assoziativen Array, mit entsprechenden Funktionen diesen nach der größe zu ordnen?
in VB bin ich leider noch nicht so weit...
wenn es das gibt und davon gehe ich aus, könnte ich die auswahl und sortierung komplett vom eigenen objekt durchführen lassen...
bei der bisherigen methode musste ich ja den ganzen ordner auswählen sortieren lassen und danach die ordner ohne berechtigung(ich erhalte dann einen abfangbaren fehler beim unterordner/files zugriff) wieder auszusortieren... das ist extrem aufwendig für meine möhre...
sicher würde die bisherige variante bei adminrechten ordentlich funktionieren, aber es soll ja jeder benutzen können...
ich hoffe ich habe mich einigermassen klar ausgedrückt...

Danke

Odium

  1. eine kleine bemerkung:

    mit der CCE sind nur OCX-dateien erstellbar, leider keine exe...das ergebnis muss dann praktisch als objekt in VB-Script eingebunden werden...

    Odium

    1. hi, odium!

      ja, so etwas gibt es in VBS...

      ein sogenanntes "dictionary-objekt"!

      du machst das auch über VB scripting:

      Set myDic = CreateObject("Scripting.Dictionary")
      myDic.Add "o", "odium"
      myDic.Add "c", "chief"
      ...

      grtz
      chief

      1. Hallo,

        danke für deine Antwort.
        hat das Dictionary-Objekt eine eingebaute sortierung?
        hab dazu nichts gefunden...
        der key wäre bei mir ein verzeichnisname der inhalt die größe...

        Odium

        1. Hallo,

          danke für deine Antwort.
          hat das Dictionary-Objekt eine eingebaute sortierung?
          hab dazu nichts gefunden...
          der key wäre bei mir ein verzeichnisname der inhalt die größe...

          Odium

          Hi,

          das Diktschonerri hat leider keine Sortierung, soweit ich das beurteilen kann, schön wäre wenn....

          es gibt aber auch noch die Möglichkeit deine Daten in ein Offline-Recordset zu speichern, sprich eine temporäre DB-Tabelle aufzubauen, hat den Vorteil, du hast nicht nur Key und Content sondern mehrere und kannst Filter,Find und Sort anwenden.

          set myRS = CreateObject("ADOR.Recordset")  'dasselbe wie ADODB
          myRS.fields.Append "Verzeichnisname",adVarChar,255
          myRS.fields.Append "Bytesize",adInteger
          ....

          myRS.Open
          myRS.AddNew
          ....
          myRS.Update

          myRS.Sort = "Bytesize DESC"
          DO Until myRS.EOF
               myRS.MoveNext
          Loop
          myRS.Close

          set myRS = nothing

          Eine gute anleitung dazu gibts auf www.asp-heute.com, suche nach "recordset"

          Viel Spaß beim Probieren. Die Performance leidet bei diesem Aufgabenumfang nur "marginal" (wie ich immer so gern sage) gegenüber dem Dictionary, bietet aber dafür wesentlich mehr Aussage.

          Tschau, Frank

          1. Hallo,

            hab mir den artikel angesehen, ist ja hervorragend...
            Danke

            Odium

            1. hey!

              das mit einer temporären tabelle war mir auch neu...

              danke für den prima tip, frank :-)

              grtz
              chief

          2. Hallo,

            habs heut nachmittag zusammengebastelt...funktioniert soweit ABER...

            hat das recordset irgendwelche beschränkungen oder liegt das an meinem rechner? ab einer zu großen anzahl zu testender ordner stürzt die kiste ab... nicht direkt die anzahl der zu testenden ordner scheint die ursache zu sein, sonder die anzahl der lesefähigen ordner die ins recordset aufgenommen werden...
            ab etwa 25 stück ist schluss...
            bei einem andren testordner mit 2 lesefähigen von ~600 ging dagegen normal...

            hmm... keine ahnung...

            Odium

            1. Hallo,
              habs heut nachmittag zusammengebastelt...funktioniert soweit ABER...
              hat das recordset irgendwelche beschränkungen oder liegt das an meinem rechner? ab einer zu großen anzahl zu testender ordner stürzt die kiste ab... nicht direkt die anzahl der zu testenden ordner scheint die ursache zu sein, sonder die anzahl der lesefähigen ordner die ins recordset aufgenommen werden...
              ab etwa 25 stück ist schluss...
              bei einem andren testordner mit 2 lesefähigen von ~600 ging dagegen normal...
              hmm... keine ahnung...
              Odium

              Hi,

              kontakte mich mal per eMail... falls du das noch liest... auch, wenn du das nicht mehr liest, solltest du mir mailen ;-) aber das wüßtest du ja theoretisch nicht, wenn du dieses Posting nicht gelesen hättest. :-)

              Gruß,
              Frank

              1. Hallo,

                ich könnte mich mal melden...danke
                ich werd das erst nochmal austesten...

                vorher hatte ich die überprüfung auf die eingegebene mindestgröße nicht im script...habs mal eingebaut und da funktioniert es...

                aber erstmal sehen, was der admin mit seinen rechten (der alle ordner lesen kann) für probleme bekommt, oder auch nicht...

                Odium