Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

Postojanje fajla - Vrlo kratki al za mene veliki problem

  • 10 odgovora
  • 5.777 pregleda

Najnovija ↓

Postojanje fajla - Vrlo kratki al za mene veliki problem 02.03.2005. u 22:21 · pre 263 meseca #1
Pozdrav,

Kako bi glasio kod koji samo provjeri da li postoji pojedini fajl na odredjenoj lokaciji?

Pr:

Ako postoji C:\Programs\Imenik.doc
msgbox «Imenik postoji»
ako ne
msgbox «Imenik ne postoji»
Potpis
Goran
Re: Postojanje fajla - Vrlo kratki al za mene veliki problem 02.03.2005. u 22:25 · pre 263 meseca #2
Code:
Private Const MAX_PATH = 260

Private Type FileTime
   dwLowDateTime As Long
   dwHighDateTime As Long
End Type

Private Type WIN32_FIND_DATA
   dwFileAttributes As Long
   ftCreationTime As FileTime
   ftLastAccessTime As FileTime
   ftLastWriteTime As FileTime
   nFileSizeHigh As Long
   nFileSizeLow As Long
   dwReserved0 As Long
   dwReserved1 As Long
   cFileName As String * MAX_PATH
   cAlternate As String * 14
End Type

Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long


Public Function FileExists(fn As String) As Boolean
    Dim retval As Long, FindData As WIN32_FIND_DATA, retval2 As Long
    retval = FindFirstFile(fn, FindData)
    If retval <> -1 Then FileExists = True
    retval2 = FindClose(retval)
End Function
Potpis
"I'd take the awe of understanding over the awe of ignorance any day."
- Douglas Adams
Re: Postojanje fajla - Vrlo kratki al za mene veliki problem 03.03.2005. u 01:47 · pre 263 meseca #4
moze i preko file system objecta

Code:
Private Sub Form_Load()
Dim Fso
Set Fso = CreateObject("Scripting.filesystemobject")

If Fso.FileExists("C:\text.txt") Then
 MsgBox "postoji"
Else
MsgBox "ne postoji"
End If

End Sub
Potpis
off all the things I've lost,
I miss my mind the most :>)
Re: Postojanje fajla - Vrlo kratki al za mene veliki problem 03.03.2005. u 13:46 · pre 263 meseca #5
ili najjednostavnije, sa ugradjenom Dir funkcijom:
Code:

Function Postoji(filename As String) As Boolean
    Postoji = (Len(Dir(filename))<>0)
End Function
'a koristi se ovako:
If Postoji("C:\Programs\Imenik.doc") Then
  MsgBox "Postoji."
Else
  MsgBox "Ne postoji."
End If

zar nije lakse? :p
a takodje mozes i proveravati da li neki folder postoji (sa malom izmenom):
Code:

Function PostojiDir(dirname As String) As Boolean
    PostojiDir = (Len(Dir(dirname, vbDirectory))<>0)
End Function
'a koristi se ovako:
If PostojiDir("C:\Programs\") Then
  MsgBox "Postoji."
Else
  MsgBox "Ne postoji."
End If


pozdrav!
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: Postojanje fajla - Vrlo kratki al za mene veliki problem 03.03.2005. u 17:35 · pre 263 meseca #6
Bravo krcko! Samo može funkcija da bude i malko jednostavnija.
Code:
Postoji = (Dir(filename)<>"")
Potpis
In a game of chess you must never let your opponent see your pieces - Zap
Brannigan
Re: Postojanje fajla - Vrlo kratki al za mene veliki problem 03.03.2005. u 17:44 · pre 263 meseca #7
Ma da. A ne moraju ni te zagrade (spoljne). Zapravo, ja to ne bih ni smestio u funkciju vec bih samo koristio Dir(filename)<>"" ;).
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: Postojanje fajla - Vrlo kratki al za mene veliki problem 03.03.2005. u 20:05 · pre 263 meseca #8
Citat:
Dark Icarus: Bravo krcko! Samo može funkcija da bude i malko jednostavnija.
Code:
Postoji = (Dir(filename)<>"")


da al je ona moja brza! :D

negde sam procitao da VB brze procesuje ovo:
Code:

 If Len(somestring)=0 Then

od ovoga:
Code:

 If somestring="" Then


:D
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: Postojanje fajla - Vrlo kratki al za mene veliki problem 03.03.2005. u 20:18 · pre 263 meseca #9
evo proguglah malo:
How NOT to optimize in VB
Optimize string handling in Visual Basic 6.0
dobro sad malo kad pogledah nije:
Code:

 If Len(somestring)=0 Then

vec
Code:

 If LenB(somestring)=0 Then

:D, dobro odavno sam ja ovo citao... :P
Potpis
rafforum.rs - Forum Računarskog Fakulteta
Re: Postojanje fajla - Vrlo kratki al za mene veliki problem 04.03.2005. u 00:19 · pre 263 meseca #10
To su već detalji, LenB vraća bajt a šta ćeš ako je fajl zakopan ispod 20 podfoldera? Onda će ti LenB(Path) vratiti grešku (valjda).

Istina je da je brže raditi sa numeričkim operatorima, ali ne verujem da bi funkciju "Postoji" program pozivao 50x u sekundi, tako da možeš sebi da priuštiš ipak da dodaš malo čitljivosti u kod nauštrb brzine. Zar je bitno da li komparacija traje 10ms ili 50ms, ako se vrši samo jednom (npr. kada korisnik klikne na neko dugme).
Potpis
In a game of chess you must never let your opponent see your pieces - Zap
Brannigan
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme