Avatar billede djondjoe Nybegynder
10. august 2004 - 15:44 Der er 5 kommentarer og
1 løsning

Teste om et object er oprettet.

Jeg har en metode hvori der på et tidspunkt åbnes en fFile som typen File, som bliver kopieret fra A til B.
For at undgå tabt data ved eventuelle fejl forsøger jeg i errorhandleren at kopiere denne fil til en errorfolder:

UTIL.FileMove ffile.Path, sbackupfilename

(UTIL.FileMove(Source,Destination) er en metode der flytter en fil)

Men i det tilfælde, at der sker en fejl i metoden inden filen er blevet oprettet endnu, vil dette jo give en fejl i errorhandleren, når den forsøger at flytte et object der ikke er er sat endnu.
Er der en måde i VB hvorpå man kan tjekke om et objekt er oprettet, som jeg så vil kunne placere inden jeg evt. forsøgte at flytte filen i errorhandleren?

Altså noget med

If fFile is oprettet Then
...og så kan jeg trygt flytte filen, fordi jeg ved den eksisterer
End If
Avatar billede martin_moth Mester
10. august 2004 - 16:38 #1
If myobject is nothing then msgbox "øv"
?
Avatar billede cole Nybegynder
10. august 2004 - 21:55 #2
Dim MinFil As FileSystemObject
Dim DrevOgSti As String

Set MinFil = New FileSystemObject

    'Hvis filen ikke eksisterer
    If Not MinFil.FileExists(DrevOgSti) Then

      msgbox "Filen findes ikke på denne adresse"
    End If

    Set MinFil = Nothing    'Fjerner MinFil Object fra hukommelsen
-----------------------------------------
For at FileSystemObject skal virke er du nød til at afkrydse "Microsoft Scripting Runtime" i Reference listen som du finder under menupunktet Project i Visual Basic. Håber du kan få det til at virke

Variablen DrevOgsti skal naturligvis indeholde Komplet Sti og filnavn
Cole
Avatar billede djondjoe Nybegynder
12. august 2004 - 10:41 #3
Invalid use of object får jeg ved at tjekke om filen er nothing.

cole: sagen er, at DrevOgSti ikke er lig med noget når filen ikke er oprettet endnu. Derfor kan jeg heller ikke gøre det på den måde. Jeg blir nødt til at tjekke om filen overhovedet er sat til noget. Men dette kan ikke gøre uden at fremprovokere en error såvidt jeg kan se.
Avatar billede cole Nybegynder
12. august 2004 - 13:06 #4
Filen er vel oprettet når du har kopieret den fra A til B. derved kender du også både A og B adresse og filnavn. Noget andet er hvad er UTIL? Hvilk sprog kører du? kører du VB Application for Word, Excel eller Access? For hvis du gør det så er det noget andet.

Man skal ikke programere ud fra at man får en fejl som skal behandles i fejlmiljøet, fejl skal så vidt muligt opsnappes i programeringsrutiner.

Hvis du starter med at kopiere fFilen til B og så tester om det er gået godt med den programkode som jeg har beskrevet så kender du jo adressen og filnavnet.

FileSystemObject har iøvrigt også en Kopifunktion kik i VB help og husk at afkrydse "Microsoft Scripting Runtime" i Reference listen ellers virker det ikke.
Avatar billede martin_moth Mester
12. august 2004 - 13:09 #5
Jeg er 99% sikker på at du kan teste om et objekt er oprettet. Men åbenbart ikke som jeg skriver det (If blabla is nothing).
Avatar billede djondjoe Nybegynder
12. august 2004 - 13:18 #6
Det er VB6. UTIL er blot en klasse, hvori der ligger en masse hjælpemetoder.

Programmet er lavet som en service, som kører hvert minut på en server. En af funktionerne scanner en masse foldere PÅ ANDRE SERVERE efter filer. Hvis der er filer i folderne skal de flyttes til et andet sted. Alle disse lokationer er specificeret i en .ini fil, som bliver læst ind i starten.
Hvis en af disse lokationer ikke findes (f.eks. hvis en server er ved at blive bootet), ryger metoden i errorhandleren fordi den ikke kan finde den sti, som der er angivet i .ini filen. Errorhandleren indeholder dog også noget, som sørger for at filer, der af en eller anden grund fejler under overførsel bliver kopieret til en error-folder. Men hvis stien ikke engang kan findes, er der selvfølgelig heller ingen fil oprettet og så fejler den i errorhandleren.
SÅ måske jeg skal lave et tjek i metoden om stien overhovedet findes fremfor at lade den ryge i errorhandleren.
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