Avatar billede amoelle Nybegynder
04. november 2001 - 16:06 Der er 2 kommentarer og
1 løsning

ActiveD dll, der skriver timestamps i fil ?

Jeg er igang med et VB projekt, der involverer en klientapplikation, der kalder 3 forskellige ActiveX komponenter, skrevet til lejligheden.

Nu skal skidtet optimeres, og jeg vil gerne se, hvorlang tid, der (relativt) bruges i de forskellige funktioner.
Så jeg havde tænkt at skrive endnu en ActiveX komponent, der indeholder logningsrutiner.
Disse skulle skrive ned i en fil (med angivelse af kaldende funktion og timestamp).
Dernæst skulle alle funktionerne i main applikationen og de 3 hjemmelavede ActiveX komponenter kalde logningsrutinen.

Selve logningen i sig selv, tager selvfølgelig tid, men det er jo samme tidsforbrug for alle funktionskald, så fordelingen af tidsforbruget må kunne ses.

Mit problem er logfil håndteringen....

Kan man have en åben fil under hele seancen, eller skal mit lognings modul åbne og lukke filen hver gang ?
Og det må vel være main applikationen, der opretter filen ?
Og på hvilken parameterform skal filehandle medsendes i logningskaldene ?

...Jeg er ikke interesseret i at skrive ud til stdout.

...Der må da være nogen, der før har lavet nogle smarte løsninger til denne type problem ??

Links, tips og kodeeksempler efterspørges ;-)

Anne 
Avatar billede jimmidreng Nybegynder
04. november 2001 - 16:25 #1
Hvad med bare at lave en simpel sub som nedenstående:

Sub LogNow(Byval Funktion as string, ByVal PointID as string)
Open \"c:\\minlog.txt\" For Append As #1
Print #1, Funktion & \" [\" & PointID & \"] \" & CStr(Now)
Close #1
End Sub

Så kaster du bare funktionens navn og et lille tag for hvor i funktionen du befinder dig.
Husk at direkte fil skrivning er langt hurtigere end Filesystem objectet.

/Jimmi
Avatar billede bennytordrup Nybegynder
04. november 2001 - 17:37 #2
Det kræver så, at den sub er delt mellem main app og de øvrige activex kontroller.

Koden ovenfor kan bygges ind som den eneste procedure i et ActiveX dll objekt. Den kan så sættes til kun at blive instantieres en gang, og så kan den referes fra main app og activex kontrollerne.
Avatar billede amoelle Nybegynder
04. november 2001 - 20:32 #3
Jeg havde fakstisk prøvet noget, der lignede en kombination af jeres forslag:
en ActiveX komponent med en logprocedure.
Jeg instantierer den fra main komponenten, og refererer til den.
Men loglinierne kom i een pærevælling ( som om der ikke var exclusive lock på skrivning).

Er det fordi jeg ikke åbnede filen  med Append ?
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