elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [RETO] Obtener nombre de archivo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 4 Ir Abajo Respuesta Imprimir
Autor Tema: [RETO] Obtener nombre de archivo  (Leído 12,035 veces)
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621


"No quiero creer, quiero saber" - Carl Sagan


Ver Perfil WWW
Re: [RETO] Obtener nombre de archivo
« Respuesta #10 en: 13 Febrero 2011, 21:24 pm »

con razon la de 79137913 a veces decia mas y otras menos, en realidad no la estaba usando, usaba 2 veces la funcion mia  :xD, ahi corregi el codigo de las funciones, en mi post, aparte fijate 79137913 que esta mal porque no estas eliminando los espacios del buffer que creas y eso la hace lentisima, la funcion bien esta aca:

GetFileTitle - Obtener nombre de archivo de un path

o sea seria:

Código
  1. Private Function Fn7913(ByVal sPath As String) As String
  2.    Dim Buffer As String
  3.    Buffer = String(255, 0)
  4.    GetFileTitle sPath, Buffer, Len(Buffer)
  5.    Fn7913 = Left$(Buffer, InStr(1, Buffer, Chr$(0)) - 1)
  6. End Function

igual sigue un poco mas lenta que las demas.

@ Mr. Frog ©

la funcion que posteaste no funciona, solo le quita el directorio principal.

aca va otra, esta tarda la mitad de la ultima que habia posteado.

Código
  1. Public Function GetFileName123(ByRef vPath As String) As String
  2.    GetFileName123 = Right$(vPath, Len(vPath) - InStrRev(vPath, "\"))
  3. End Function

saludos.


« Última modificación: 13 Febrero 2011, 22:10 pm por seba123neo » En línea

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson
Elemental Code


Desconectado Desconectado

Mensajes: 622


Im beyond the system


Ver Perfil
Re: [RETO] Obtener nombre de archivo
« Respuesta #11 en: 13 Febrero 2011, 21:53 pm »

No creo que sea la mas rapida
pero tampoco creo que sea la mas lenta :P

Código
  1. Public Function SacarFilenameE_C(ByRef sPath As String) As String
  2. SacarFilenameE_C = StrReverse$(Left$(StrReverse$(sPath), InStr(1, StrReverse$(sPath), "\", vbBinaryCompare) - 1))
  3. End Function

EDITO:
Medio segundo despues de que puse el tema encontre la funcion InStrRev :P

aca una segunda funcion

Código
  1. Public Function SacarFilenameE_Cv2(ByRef sPath As String) As String
  2.    SacarFilenameE_Cv2 = Right$(sPath, Len(sPath) - InStrRev(sPath, "\", Len(sPath), vbBinaryCompare))
  3. End Function


« Última modificación: 13 Febrero 2011, 22:09 pm por Elemental Code » 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 Desconectado

Mensajes: 1.089



Ver Perfil WWW
Re: [RETO] Obtener nombre de archivo
« Respuesta #12 en: 13 Febrero 2011, 22:32 pm »

Código
  1. Public Static Function GetFileMrFrog(ByRef sFile As String) As String
  2.    GetFileMrFrog = RightB$(sFile, InStrRev(sFile, "\") * 2 - 2)
  3. End Function

Esta si! :P
Despues testeo ahora no tengo tiempo.
@Seba123neo
Jajajaj hice la clase precisamente para ahorrarte el trabajo! :xD

DoEvents! :P
« Última modificación: 13 Febrero 2011, 22:49 pm por Mr. Frog © » En línea

Elemental Code


Desconectado Desconectado

Mensajes: 622


Im beyond the system


Ver Perfil
Re: [RETO] Obtener nombre de archivo
« Respuesta #13 en: 13 Febrero 2011, 22:51 pm »

Van a pensar que salio asi porque lo hice yo  :-[ :-[
Código:
================================================================================
º Contest Name : ObtenerNombreArchivo
º Explanation  : Mas claro, hechale agua
º Arguments    : C:\Documents and Settings\Llamazares\Mis documentos\Downloads\SexoDeRanas.avi
º Loops        : 1000
º Date & Hour  : 02-13-2011 <-> 18:48:31
================================================================================
Results [compiled] :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.- SacarFilenameE_C                                    -> 24,129044 msec
2.- SacarFilenameE_Cv2                                  -> 27,445965 msec
3.- getFileNameIgnorante                                -> 30,370386 msec
4.- getFileNameIgnoranteMODSeba                         -> 36,459560 msec
5.- GetFilename123                                      -> 38,079072 msec
6.- nombre_archivoGrester                               -> 46,986994 msec
7.- Fn7913                                              -> 256,390794 msec
================================================================================
º The following functions returns incorrect results :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1.- GetFileMrFrog
2.- StripPathSeba
================================================================================
>>> Test made by cFrogContest.cls <-> Visit foro.elhacker.net <<<
================================================================================



capas que le erre en algo  :-[

Asi esta codeado:
Código:
Private cFC                     As New cFrogContest '// Class declaration.

Private Declare Sub PathStripPath Lib "shlwapi.dll" Alias "PathStripPathA" (ByVal pszPath As String)
Private Declare Function GetFileTitle Lib "comdlg32.dll" Alias "GetFileTitleA" (ByVal lpszFile As String, ByVal lpszTitle As String, ByVal cbBuf As Integer) As Integer
Public Function SacarFilenameE_C(ByRef sPath As String) As String
SacarFilenameE_C = StrReverse$(Left$(StrReverse$(sPath), InStr(1, StrReverse(sPath), "\", vbBinaryCompare) - 1))
End Function
Public Function SacarFilenameE_Cv2(ByRef sPath As String) As String
    SacarFilenameE_Cv2 = Right$(sPath, Len(sPath) - InStrRev(sPath, "\", Len(sPath), vbBinaryCompare))
End Function
Public Static Function GetFileMrFrog(ByRef sFile As String) As String
    GetFileMrFrog = RightB$(sFile, InStrRev(sFile, "\") * 2 - 2)
End Function
Public Function getFileNameIgnorante(ByVal path As String) As String
    Dim cM As Integer
    cM = InStrRev(path, "\") + 1
    If cM = 0 Then Exit Function
    getFileNameIgnorante = Mid(path, cM)
End Function
Public Function StripPathSeba(ByVal sPath As String) As String
   Call PathStripPath(sPath)
   StripPathSeba = sPath
End Function
Public Function getFileNameIgnoranteMODSeba(ByVal path As String) As String
    getFileNameIgnoranteMODSeba = Mid$(path, InStrRev(path, "\") + 1)
End Function
Public Function nombre_archivoGrester(ByVal Ruta As String) As String
Dim partes() As String
partes = Split(Ruta, "\")
nombre_archivoGrester = partes(UBound(partes))
End Function
Public Function Fn7913(ByVal sPath As String) As String
    Dim Buffer As String
    Buffer = String(255, 0)
    GetFileTitle sPath, Buffer, Len(Buffer)
    Fn7913 = Left$(Buffer, InStr(1, Buffer, Chr$(0)) - 1)
 End Function
 Public Function GetFileName123(ByRef vPath As String) As String
    GetFileName123 = Right$(vPath, Len(vPath) - InStrRev(vPath, "\"))
End Function

Private Sub Form_Load()
    With cFC
        .ContestName = "ObtenerNombreArchivo"                      '// The constest name.
        .Explanation = "Mas claro, hechale agua" '// Little explanation.
        .SaveDirectory = App.path                       '// Directory where you saved the test.
        .ReplaceFile = True                        '// To overwrite the file.
        .Functions "Fn7913,GetFileMrFrog,GetFilename123,getFileNameIgnorante,getFileNameIgnoranteMODSeba,nombre_archivoGrester,SacarFilenameE_C,SacarFilenameE_Cv2,StripPathSeba"  '// Name of the functions.
        .Arguments "C:\Documents and Settings\Llamazares\Mis documentos\Downloads\SexoDeRanas.avi"        '// Arguments of functions (must be the same in all functions).
        .NumberOfLoops = 1000                        '// Number of Loop to call them.
        .Result = "SexoDeRanas.avi"                           '// This result should give functions.
        .SetObject Me                               '// Object (needed to make the calls).
        .TestIt                                     '// Execute the test and save it.
        .ShowTest                                   '// Shows the txt file.
    End With
    
End


End Sub

y necesita la clase que codeo mi amigo ranafonico.

http://foro.elhacker.net/programacion_visual_basic/src_cfrogcontestcls_by_mr_frog_copy-t318871.0.html
« Última modificación: 13 Febrero 2011, 23:08 pm por Elemental Code » En línea

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.148


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] Obtener nombre de archivo
« Respuesta #14 en: 13 Febrero 2011, 23:10 pm »

.
tal vez no sea la mas rapida pero si la que no te va a devolver cosas raras.

Ej (Agregar estas cadena al Test):

Código:

C:\carpetas con varios puntos ... segun los parametros\ARCHIVO
C:\carpetas con varios puntos ... segun los parametros\ARCHIVO
C:\carpetas con varios puntos ... segun los parametros\ARCHIVO
C:\carpetas con varios puntos ... segun los parametros\ARCHIVO.EXE
C:\carpetas con varios puntos ... segun los parametros\ARCHIVO.EXE
C:\carpetas con varios puntos ... segun los parametros\ARCHIVO.EXE
C:ARCHIVO.exe
C:ARCHIVO.exe
C:ARCHIVO.exe
C:...ARCHIVO.exe
C:...ARCHIVO.exe
C:...ARCHIVO.exe


GetPatchInfo

Dulces Lunas!¡.
« Última modificación: 13 Febrero 2011, 23:31 pm por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
Elemental Code


Desconectado Desconectado

Mensajes: 622


Im beyond the system


Ver Perfil
Re: [RETO] Obtener nombre de archivo
« Respuesta #15 en: 13 Febrero 2011, 23:19 pm »

@BlackZeroX

La funcion del hombre rana me fuerza a usar los mismos argumentos para todas las funciones.
Tu funcion tiene mas vueltas que una calecita  :huh: :-\

PD: Aguante el topo yiyo  ;D
En línea

I CODE FOR $$$
Programo por $$$
Hago tareas, trabajos para la facultad, lo que sea en VB6.0

Mis programas
seba123neo
Moderador
***
Desconectado Desconectado

Mensajes: 3.621


"No quiero creer, quiero saber" - Carl Sagan


Ver Perfil WWW
Re: [RETO] Obtener nombre de archivo
« Respuesta #16 en: 13 Febrero 2011, 23:25 pm »

te falta postear la ultima que puse, fijate que editamos el post casi al mismo tiempo  :xD y pusimos la misma funcion con una diferencia, solo que la tuya hace el vbBinaryCompare.

la de la api que yo posteo creo que no anda con la clase de Mr. Frog ©  porque en la documentacion de la api dice que esta api no devuelve ningun valor, el valor que devuelve lo hace sobre la misma variable que le pasas y por eso creo que la clase que llama a la api espera un resultado que nunca llega y termina en error.

saludos.
En línea

La característica extraordinaria de las leyes de la física es que se aplican en todos lados, sea que tú elijas o no creer en ellas. Lo bueno de las ciencias es que siempre tienen la verdad, quieras creerla o no.

Neil deGrasse Tyson
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.148


I'Love...!¡.


Ver Perfil WWW
Re: [RETO] Obtener nombre de archivo
« Respuesta #17 en: 13 Febrero 2011, 23:37 pm »

@BlackZeroX

Tu funcion tiene mas vueltas que una calecita  :huh: :-\

PD: Aguante el topo yiyo  ;D

1) No tiene tantas vueltas. aun que el resultado es seguro xP ( Puse algunas cadenas Extras y muchas de ellas si las pruebo con las funciones que se publicaron aquí crashean a excepción de las API que en mi forma de ver deberian excluirse del reto pero bueno ).
2) Yeah.

Dulces Lunas!¡.
« Última modificación: 13 Febrero 2011, 23:42 pm por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: [RETO] Obtener nombre de archivo
« Respuesta #18 en: 14 Febrero 2011, 00:23 am »

HOLA!!!

Pff que bajon era re lenta, aho ra mo pongo a hacer otra funcion, daba asco la primera, pero testeenla por que no tengo vb aca

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*
79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: [RETO] Obtener nombre de archivo
« Respuesta #19 en: 14 Febrero 2011, 02:11 am »

HOLA!!!

Estuve buscando otras maneras de hacerlo, pero cuanto mas ganaba velocidad la funcion mas se asemejaba a las que habian posteado, asi que no vale :P.

En fin quiten la mia del test que solo realentiza...

Ahh, aca les dejo la version mas lenta que puede haber :P

Agreguen en referencias Microsoft Scripting Runtime

Código
  1. Private Function VeryVerySlow7193(sPath as string) as string
  2. Dim fso As New FileSystemObject
  3. Dim Archivo as File
  4. Set Archivo = fso.GetFile(sPath)
  5. If Not (Fi  Is Nothing) Then VeryVerySlow7913 = Fi.Name : Exit Function
  6. VeryVerySlow7913 = "Error, asegurese que el archivo existe (This Function Sucks)"
  7. 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*
Páginas: 1 [2] 3 4 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Batch] obtener nombre de archivo (solucionado)
Scripting
corax 2 9,110 Último mensaje 23 Junio 2009, 20:29 pm
por corax
Obtener el nombre de PC
Programación C/C++
.:WindHack:. 1 1,470 Último mensaje 16 Mayo 2010, 21:40 pm
por Foxy Rider
Obtener ruta y nombre de archivo por el PID
Programación C/C++
Distorsion 5 4,651 Último mensaje 13 Enero 2011, 15:11 pm
por Distorsion
[Sockets] Obtener Nombre del archivo
.NET (C#, VB.NET, ASP)
kub0x 3 1,853 Último mensaje 14 Abril 2012, 20:06 pm
por kub0x
[RETO] Obtener archivo Web.Config
Programación General
n3oze3kr 1 1,080 Último mensaje 17 Febrero 2015, 22:35 pm
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines