[VBScript] Ophalen laatst gecreeërde bestand

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • BlackBurn
  • Registratie: Juni 2001
  • Laatst online: 22-09 22:03

BlackBurn

One Ring To Rule Them All

Topicstarter
Voor mijn werk, ben ik bezig met een simpel vbscript dat orders verwerkt.
Echter nu wil ik de binnen gekomen order vergelijken met de laatste order van de desbetreffende klant.

Nu kan ik wel via het Folder object de File collection uitlezen, maar om er achter te komen wat de laatst gecreeërde file is, moet ik bestand voor bestand afgaan.

Is hier een snellere of slimmere methode voor? Deze (backup) directory, kan al snel duizenden files bevatten.

Een mogelijkheid zou kunnen zijn om de laatst geschreven bestanden in een aparte directory weg te schrijven i.p.v. de algemene Backup directory, echter lijkt dit mij een slordige oplossing, omdat je dan met bestanden aan het schuiven blijft.

[ Voor 0% gewijzigd door BlackBurn op 26-03-2007 14:31 . Reden: spelvoutjes verbeterd ]

If it is broken, fix it. If it ain't broken, make it better!


Acties:
  • 0 Henk 'm!

  • BlackBurn
  • Registratie: Juni 2001
  • Laatst online: 22-09 22:03

BlackBurn

One Ring To Rule Them All

Topicstarter
Niemand een betere methode?
Ik heb het nu zo gemaakt, dat de nieuwe orders in een apart mapje, "laatste" gezet worden.

Elke keer als er een nieuwe order binnenkomt en niet hetzelfde is als de laatste van dezelfde klant, word het bestand in het mapje laatste vervangen door de nieuwe order, nu kan ik telkens in het mapje laatste controleren of het bestand al bestaat, op deze manier hoef ik een stuk minder bestanden af te gaan als in de back-up directory.

Maar of dit de meest nette en efficiënte methode is?

If it is broken, fix it. If it ain't broken, make it better!


Acties:
  • 0 Henk 'm!

  • DND_Roche
  • Registratie: Juli 2006
  • Laatst online: 02-01-2024
Wat is het wat je wilt controleren?

Als je wil uitsluiten dat een klant 2x dezelfde (lees identieke) order verstuurd zou je misschien kunnen werken met een hash-code van de laatste order? Dan hoef je geen mappen/bestanden door, maar alleen de hash-code van de huidige order vergelijken met de hash-code van de laatst ontvangen...

Ik denk dat je toch wat meer info moet plaatsen over wat je nou wil en wat je hebt (qua omgeving, database e.d.)

Acties:
  • 0 Henk 'm!

  • Tukk
  • Registratie: Januari 2002
  • Laatst online: 22-09 11:32

Tukk

De α-man met het ẞ-brein

Er bestaan vele Windows API's voor files, een voorbeeld van gebruik van deze zijn: http://www.devx.com/vb2themax/Tip/19219

Door te zoeken/uit te proberen moet het mogelijk zijn een snelle en simpele functie te maken die je de meest recente terug geeft. Het FileSystemObject is beperkt in gebruik en erg langzaam.

Als je weet wat je doet en je wil het snel hebben (in snel draaien, niet maken), gebruik dan de Windows API's. Ik zou de documentatie van Windows er op na slaan op MSDN om te zoeken naar de API's die je denkt nodig te hebben.

Q: How many geeks does it take to ruin a joke? A: You mean nerd, not geek. And not joke, but riddle. Proceed.


Acties:
  • 0 Henk 'm!

  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 10:08

mulder

ik spuug op het trottoir

Heb je die orders alleen als bestand?

oogjes open, snaveltjes dicht


Acties:
  • 0 Henk 'm!

  • BlackBurn
  • Registratie: Juni 2001
  • Laatst online: 22-09 22:03

BlackBurn

One Ring To Rule Them All

Topicstarter
De orders heb ik alleen als bestand in en back-up directory.

Het is een aanpassing op een bestaand ordersysteem, dus ik heb helaas niet alles in de hand. De orders worden via FTP op de centrale server bij ons gezet een AS400 machine.
Ik kan hierna de orders niet meer bereiken en alleen de backup-bestanden die ik zelf heb weggeschreven.

Momenteel gebruik ik inderdaad het FSO echter zoekt deze nu in een directory waar van elke klant alleen de laatste order staat. Deze is herkenbaar, omdat het klantnr in de bestandsnaam is verwerkt.

Nadeel imo is, dat er naast een backup, ook een bestand in de map "laatste order" gezet moet worden. Verder vraag ik me af hoe snel het FSO is, als er straks rond de bijv. 5000 verschillende klanten in de "laatste order" directory zitten.

Ik ga eens een blik werpen op het voorbeeld wat Tukk hierboven noemt.

If it is broken, fix it. If it ain't broken, make it better!


Acties:
  • 0 Henk 'm!

  • JJvG
  • Registratie: Juli 2003
  • Laatst online: 31-05 13:43
Ik heb zelf een soortgelijke situatie gehad waarin ik het meest recente bestand wilde tonen (in een directory met logfile, de log van de recentste instantie). Helaas is het FSO beperkt en kan je niet filteren voordat je een aanroep doet. Een "truc" die ik daarbij van een andere site heb gekopieerd is om alles eerst in een dataset (recordset) te inserten, dan te querien op en daarna je acties uit te voeren.

..... (zoekt even op)

Mijn bron: http://www.aspemporium.com/aspapps_src.aspx?eid=33

Succes!

Acties:
  • 0 Henk 'm!

  • Dutch_guy
  • Registratie: September 2001
  • Laatst online: 15-09 12:06

Dutch_guy

WYSIWYG

De namen van de bestanden opslaan in een database, en de database het zware werk laten uitvoeren.

Je hebt dan ook geen snelheidsprobleem meer.

Pay peanuts get monkeys !

Pagina: 1