Autor
|
Tema: mFileExists.bas [Tan rustico como se pueda :D] (Leído 11,086 veces)
|
Elemental Code
Desconectado
Mensajes: 622
Im beyond the system
|
Siguiendo con lo rustico aca les dejo este modulo para hacer una funcion que VB deberia haber tenido '--------------------------------------------------------------------------------------- ' Module : mFileExists ' Author : Elemental Code ' Date : 01/02/2011 ' Purpose : Check if a file exists in the most rustic way '--------------------------------------------------------------------------------------- Option Explicit Dim attr As VbFileAttribute Public Function FileExists(ByVal sPath As String) As Boolean On Error GoTo Missing attr = GetAttr(sPath) FileExists = True Exit Function Missing: FileExists = False End Function
Esta es la version estupida, facil y rustica de averiguar si un archivo existe. Posiblemente haya aproximadamente 15.000 formas mejores pero esta funciona y la arme yo de guapo que soy. Ademas uso esto como palanca para que un programador capo (Ejem Karcrack, Cobein, Seba123neo, BlackZeroX, Mr.Frog, LeandroA) se jueguen y saquen una version super rapida, con inline de ASM y que tire rayos por los ojos Saludos.
|
|
|
En línea
|
I CODE FOR $$$ Programo por $$$ Hago tareas, trabajos para la facultad, lo que sea en VB6.0 Mis programas
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
HOLA!!! Creo que la manera mas rustica y corta seria: Private Function F_Exist(sPath as string) As Boolean If Dir(sPath) <> "" then F_Exist = True End Function
GRACIAS POR LEER!!!
|
|
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas"
79137913 *Shadow Scouts Team*
|
|
|
LeandroA
|
Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long
CBool(GetFileAttributes(sPath) <> -1)
|
|
|
En línea
|
|
|
|
Elemental Code
Desconectado
Mensajes: 622
Im beyond the system
|
Copado falta la parte de Inline ASM y que tire rayos por los ojos
|
|
|
En línea
|
I CODE FOR $$$ Programo por $$$ Hago tareas, trabajos para la facultad, lo que sea en VB6.0 Mis programas
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
La forma más rápida de hacerlo que encontrarás es la que usa LA. Aquí una forma más fea: Option Explicit Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFilename As String, lpFindFileData As WIN32_FIND_DATA) As Long 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 * 260 cAlternate As String * 14 End Type Private myWFD As WIN32_FIND_DATA Public Function MrFrogFileExists(ByRef strFileName As String) As Boolean MrFrogFileExists = Not (FindFirstFile(strFileName, myWFD) = -1) End Function
DoEvents!
|
|
« Última modificación: 2 Febrero 2011, 02:16 am por Mr. Frog © »
|
En línea
|
|
|
|
Edu
Desconectado
Mensajes: 1.082
Ex XXX-ZERO-XXX
|
Que hizo la rana? jajaja
|
|
|
En línea
|
|
|
|
Karcrack
Desconectado
Mensajes: 2.416
Se siente observado ¬¬'
|
Otra alternativa mas: 'KERNEL32 Private Declare Function OpenFile Lib "KERNEL32" (ByVal lpFileName As String, ByRef lpReOpenBuff As Any, ByVal wStyle As Long) As Long Private Function DoFileExists(ByVal sPath As String) As Boolean Dim OFSTRUCT(&H21) As Long DoFileExists = CBool(OpenFile(sPath, OFSTRUCT(0), &H4000) <> -1) End Function
MOD:La ruta tiene una limitación de 128 caracteres... Problema de usar funciones diseñadas para 16bits
|
|
« Última modificación: 2 Febrero 2011, 15:31 pm por Karcrack »
|
En línea
|
|
|
|
79137913
Desconectado
Mensajes: 1.169
4 Esquinas
|
HOLA!!! Mmm, el Inline Asm te lo debo, pero tira rayos por los ojos XD 'armen un form con: ' 2 shapes ' 2 lines ' 1 timer ' y denle a f5 Private Function F_Exist(sPath As String) As Boolean If Dir(sPath) <> "" Then F_Exist = True End Function Private Sub Form_Load() Me.ScaleMode = vbPixels Me.ScaleHeight = 600 Me.ScaleWidth = 800 Shape1.Top = Me.ScaleHeight / 2 - 200 Shape2.Top = Me.ScaleHeight / 2 - 200 Shape1.Left = Me.ScaleWidth / 2 - 150 Shape2.Left = Me.ScaleWidth / 2 + 150 Shape1.Shape = 2 Shape2.Shape = 2 Shape1.Width = 150 Shape2.Width = 150 Shape1.Height = 300 Shape2.Height = 300 Line1.BorderColor = &HFF& Line2.BorderColor = &HFF& Line1.X1 = Shape1.Left + Shape1.Width / 2 Line1.Y1 = Shape1.Top + Shape1.Height / 2 Line2.X1 = Shape2.Left + Shape2.Width / 2 Line2.Y1 = Shape2.Top + Shape2.Height / 2 Timer1.Interval = 100 End Sub Private Sub Timer1_Timer() Randomize neg = 1 If Rnd() * 2 > 1 Then neg = -1 Line1.X2 = Shape1.Left + Shape1.Width / 2 + Rnd() * 300 * neg neg = 1 If Rnd() * 2 > 1 Then neg = -1 Line1.Y2 = Shape1.Top + Shape1.Height / 2 + Rnd() * 300 * neg neg = 1 If Rnd() * 2 > 1 Then neg = -1 Line2.X2 = Shape2.Left + Shape2.Width / 2 + Rnd() * 300 * neg neg = 1 If Rnd() * 2 > 1 Then neg = -1 Line2.Y2 = Shape2.Top + Shape2.Height / 2 + Rnd() * 300 * neg Debug.Print F_Exist("c:\hola.txt") End Sub
GRACIAS POR LEER!!!
|
|
« Última modificación: 3 Febrero 2011, 17:08 pm por 79137913 »
|
En línea
|
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!" "La peor de las ignorancias es no saber corregirlas"
79137913 *Shadow Scouts Team*
|
|
|
Psyke1
Wiki
Desconectado
Mensajes: 1.089
|
Jajajjaja Estás loco... DoEvents!
|
|
« Última modificación: 3 Febrero 2011, 02:04 am por Mr. Frog © »
|
En línea
|
|
|
|
Elemental Code
Desconectado
Mensajes: 622
Im beyond the system
|
LOQUISIMO FUNCIONA BOLUDO TIRA RAYITOS POR LOS OJOS!!! Fantastico
|
|
|
En línea
|
I CODE FOR $$$ Programo por $$$ Hago tareas, trabajos para la facultad, lo que sea en VB6.0 Mis programas
|
|
|
|
|