Toon posts:

[C|W32] Ontwerpprobleem: data opslaan

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik ben bezig met een Windows-versie van een programma wat MP3s moet controleren. Nu wordt het een soort Windows verkenner, met kolommen die de gebruiker vertellen wat voor MP3 het is en of deze OK is. De data wordt pas verzameld als de gebruiker aangeeft een bestand te willen scannen, maar moet vastgehouden/opgeslagen blijven, ook als de gebruiker naar een andere directory gaat.

Ik moet dus een deel van de directorystructuur in het geheugen houden. Hoe pak ik dit aan? Hoe kijk ik of er informatie beschikbaar is over een bepaald bestand?

  • NaliXL
  • Registratie: Maart 2002
  • Laatst online: 01-05 19:30
Gewoon een array maken met bekende bestanden/eigenschappen? Voor gemakkelijke structurering is 'n meer-dimensionale array natuurlijk wel zo makkelijk.

Ik weet trouwens niet in hoeverre de standaard windows-libs (die je neem ik aan gebruikt) op de Delphi componenten lijken (ben zelf vooral delphi programmeur), maar de meeste van die "listing"-dingen slaan zelf hun data op. In delphi zou dat zoiets zijn als "list.elements[0].tekst"...

Genoeg is meer dan veel, en tart den overvloed


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 14:53

NMe

Quia Ego Sic Dico.

Ik zou een array maken van een abstract datatype. Een struct schrijven dus, of misschien een klasse. Sorry, C, niet C++.

[ Voor 15% gewijzigd door NMe op 19-07-2004 18:47 ]

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Moet ik dan een array maken met directory- en bestandsnamen? Als ik van een bepaald bestand de eigenschappen wil weten, moet ik dan de hele directory doorzoeken?

Verwijderd

Uhmm... ik zou mischien een array maken die in zich pointers naar een andere lijst wijst.

Je krijgt dus 1 array met verschillende array's, die elk voor zich een filename en directory structuur bevat en eventuele titel ofzo *de keuze is aan jou*.

Nu kan je dus vanuit die structuur een lijst opbouwen in html of wat jij wilt.

En je kan dus heel snel door de lijst heenlopen, omdat je met een next en previous commando steeds door de lijst heen kan lopen... En via de pointers de lijsten en velden van deze lijsten weer bekijken of deze voldoet aan jou eisen. DUs om eventueel de dir en filename op te zoeken van een al goed gevalideerde titel ....

Ik hoop dat je zoiets zoekt

*zoals een van mijn voorgangers ook al gezegd had *

[ Voor 5% gewijzigd door Verwijderd op 19-07-2004 19:19 ]


  • rollebol
  • Registratie: Mei 2000
  • Laatst online: 22-08-2025
Als het een heel erg grote hoeveelheid files betreft kan je beter een hash map maken. In C++ zit daarvoor een heleboel handigs in de STL, misschien is dat een optie? Anders zal je het zelf moeten doen, de essentie is dan dat je een integer hebt die de bestandsnaam bijna uniek representeert (maar niet helemaal uniek) waar je zeer snel op kan zoeken en die ook snel is te berekenen.

Onderhoud een gesorteerde lijst van deze integers gekoppeld aan per integer een pointer naar je metadatastruct en je kan razendsnel de goeie file vinden als je slim door die lijst zoekt.

Een voorbeeld van zo'n integer is de alombekende CRC-32. Deze is niet perfect, maar ik ben de naam van de perfecte even kwijt. Sowieso is het hashing-algoritme nadien makkelijk te wijzigen. Het gaat er alleen om dat je niet elke keer allemaal string comparisons moet doen.
Pagina: 1