Avatar billede Slettet bruger
16. oktober 2002 - 14:17 Der er 10 kommentarer og
1 løsning

Hvordan får jeg en knap til at finde en fil og bagefter køre den?

Kan jeg få en Command button til automatisk at finde en fil med et navn som "Filen.exe" og måske enda checke efter fil størrelsen så den er sikker på om det er den rigtige fil. Og bagefter køre den?

Håber der er nogle hardcore Visual Basic nørder derude...

PS. Jeg køre med VB 5.0

Mvh. DeZZa (Kommer du med til Area99 Aalborg?)
Avatar billede exp-ralle Nybegynder
16. oktober 2002 - 14:26 #1
Følger lige med...
Avatar billede tubber Juniormester
16. oktober 2002 - 14:43 #2
Du kan ved at trykke download på følgende link, få koden for en recursive search....

og når du søger så er det vel bare at sætte en variable lige med path og filename og så køre en shell på den

Shell(Path & "\" & Filename)

/Tubber
Avatar billede martin_moth Mester
16. oktober 2002 - 14:51 #3
Tubber > Du glemte linket... Der er også links i http://www.eksperten.dk/spm/265166 til filsøgefunktioner (også rekursive)

En fils størrelse kan du få ved følgende kode:

    Dim fso, sFo, acFi
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set sFo = fso.GetFolder(Path)
    acFi = fso.GetFile(FileName)
    Msgbox "Filstørrelsen er " & acFi.Size

Path og FileName er som i tubbers svar
Avatar billede martin_moth Mester
16. oktober 2002 - 14:55 #4
PS: For at ovenstående med filstørrelse virker, skal du have MicroSoft Scripting Runtime afkrydset,under Project > References :o))

Du kan også tjekke alt muligt andet end filstørrelse, fx. datoer (fx. DateLastModified, DateCreated), attributter (System, Read-Only, ...) osv. Søg på eksperten i denne kategori på FSO (File System Object)
Avatar billede tubber Juniormester
16. oktober 2002 - 15:05 #5
hov.....Sorry......

gik lidt stærkt til sidst hehe
havde lige en lille den ville ud og sove.....

og trykker man på linket henter den det bare....
http://www.zarr.net/vb/download/download.asp?id=182

/Tubber
Avatar billede Slettet bruger
16. oktober 2002 - 16:00 #6
I skal forklare bedre hvad skal jeg skrive i

Private Sub Command1_Click()
[HVAD HER]
End Sub

Vis vi siger filen hedder Omatic.exe og programmet selv skal finde frem til det. Og så garantere at det er den rigtige ved at checke filstørrelsen som er 299.008 byte
Avatar billede martin_moth Mester
16. oktober 2002 - 19:29 #7
[HVAD HER] kan du finde ud af ved at se på tubbers og mine svar - du skal vel ikke have os til at lave hele programmet, vel ;o)
Avatar billede martin_moth Mester
16. oktober 2002 - 19:38 #8
Her er skelettet til dit program. Du har alt det der skal til for at gøre det færdigt i ovenstående svar...

Public Path as string
Public Filename as string

Private Sub Command1_Click()
  Filename = Text1.Text 'Eller hvor du ellers vil få Filnavnet fra...
  If Findfil(Filename) then
    TjekFilstørrelse
  Else
    msgbox "Fil ikke fundet", vbcritical, "Fejl"
    Exit sub
  End if
  If Filstørrelse Then Shell(Path & "\" & Filename)
End Sub

Private Function Findfil(Filename as string) as boolean
  Findfil = False
  'Brug kode fra de links tubber og jeg gav
  'Og skriv filstien til Path og filnavn til Filename
  'Hvis filen findes sættes FindFil til True
End Sub

Private Function TjekFilstørrelse(Fil as String, Path as String) as Boolean
  TjekFilstørrelse = False
  Brug koden jeg gav dig til at tjekke filstørrelse
  If acFi.Size = 299008 then TjekFilstørrelse = true
End Function
16. oktober 2002 - 23:23 #9
Du kan også bruge FileLen til at få en fils størrelse.
eksempel:

Dim STRfil as String

STRfil = "c:\opret_mig_med_indhold.txt"
Debug.print FileLen(STRfil)

/Casper
Avatar billede Slettet bruger
16. oktober 2002 - 23:36 #10
matin_moth gidder du lige sige hva for et svar??? Kan du ikke starte et nyt svar med det hele i? Samlet!
Avatar billede martin_moth Mester
17. oktober 2002 - 09:18 #11
For 15 point gider jeg ikke kode flere 100 linier for dig. Men jeg hjælper gerne med små konkrete problemer, eller med at finde generelle løsningsforslag. Og nu skal jeg forsøge at formulere mig, så det ikke kan misforståes :o)

Brug forslaget fra dezza til at finde filstørrelse - det er meget simplere end det jeg har givet. Det har jeg været så rar at putte ind i "skelettet" for dig, så det kunne se sådan ud:

Public Path as string
Public Filename as string

Private Sub Command1_Click()
  Filename = Text1.Text 'Eller hvor du ellers vil få Filnavnet fra...
  If Findfil(Filename) then
    TjekFilstørrelse
  Else
    msgbox "Fil ikke fundet", vbcritical, "Fejl"
    Exit sub
  End if
  If FileLen(Path & "\" & Filename) = 299008 then Shell(Path & "\" & Filename)
End Sub

Private Function Findfil(Filename as string) as boolean
  Findfil = False
  'Brug kode fra de links tubber og jeg gav
  'Og skriv filstien til Path og filnavn til Filename
  'Hvis filen findes sættes FindFil til True
End Sub

Det _eneste_ der mangler overfor er at skrive functionen FindFil færdig - dertil skal du bruge et af de links tubber og jeg gav dig... Så på med vanten og gang i Copy/Paste :o)
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