Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Averiguar La Extensión De Un Archivo. Métodos
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Averiguar La Extensión De Un Archivo. Métodos 
 
Buenos días.

Necesitaba para otro ejemplo, la creación una función que devuelva la extensión de un archivo.
Suponiendo que sabemos cual es este, claro.

En Python existe el método de cadena "endswith", que es algo como acaba en, o con.
Aunque no tenemos eso en gambas, podemos hacerlo de otra forma.

En el primer método se averigua con split. Pero, ¿ y si tenemos estos dos nombres de archivo ?:

nombrearchivo = "cancion.mp3"
nombrearchivo = "cancion.de.pepe.mp3"
 

 
La primera forma no valdría.

Public Function QueExtension(nom As String) As String
  
  'Return Split(nom, ".")[1]    
  Return Split(nom, ".").Pop()
    
End
 


Ahora si lo hiciéramos con instrucciones de cadena.
Estuve evaluando dos posibilidades, pero contra más operaciones haga, más va a tardar.
Me decidí por Mid, aunque pude usar Right

Public Function QueExtension2(nom As String) As String
  
  Return Mid(nom, RInStr(nom, ".") + 1, Len(nom))
  'Return Right(nom, Len(nom) - RInStr(nom, ".") + 1)
  
End
 


Usando el perfilado de depuración en gambas. Con el método Right y las dos operaciones siempre tarda 1uS más que Mid.
Si comparo el tiempo que tarda usando cadenas con array. Es siempre más rápido trabajar con cadenas.
Mientras que con cadenas puede tardar de 4 a 5 uS. Con arrays un poco más del triple.

Y para acabar un método parecido a endswith de Python.

Public Function AcabarEn(palabra As String, terminaen As String) As Boolean
  
  Return RInStr(palabra, terminaen)
  
End
 

Suponiendo que cualquier valor positivo es True y 0 es False.

Saludos
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Extensión De Un Archivo. Métodos 
 
Tratandose de la extensión de un archivo, podemos usar el Método "Ext( )" de la Clase File .


Exemplum simplex:
Public Sub Form_Open()

  Dim s As String

   s = File.Ext("/ruta/del/archivo")

   Print s

End

 



 
última edición por vuott el Domingo, 15 Enero 2017, 15:27; editado 1 vez 
vuott - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Extensión De Un Archivo. Métodos 
 
La funcion de Vuott es correcta, pero para no tener problemas en caso que el path sea un directorio y no un archivo puedes usar tambien algo así:


  Dim strPath As String
  Dim strExt As String
  
  If Exist(strPath) = True Then
    If Stat(strPath).Type = gb.File Then
      strExt = File.Ext(strPath)
    Endif
  Endif
 


Saludos.
 



 
tincho - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Averiguar La Extensión De Un Archivo. Métodos 
 
Gracias a los dos.

No conocía el método ext() de File.
En el ejemplo que estaba viendo, no es que tratase directamente un archivo real.
Era más operaciones de cadena que trabajo con archivos. Hubiese sido algo más complicado el ejemplo.

Es bueno conocer ese método y como asegurarse de que es un archivo y no un directorio.
Interesante.

Saludos
 




===================
Gambas Básico
“Si no puedes explicar algo de forma sencilla, entonces es que tú no lo entiendes bien.” Albert Einstein
 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Sqliteman, Archivo Extensión Sql Shell Bases de Datos 3 Jueves, 28 May 2015, 21:37 Ver último mensaje
Shell
No hay nuevos mensajes Recuperar Un Archivo De Una Ruta Sabiendo ... gambafeliz General 11 Miercoles, 25 Septiembre 2019, 10:46 Ver último mensaje
tincho
No hay nuevos mensajes Averiguar Espacio Que Ocupa Un Archivo Shell General 4 Domingo, 22 Noviembre 2015, 21:35 Ver último mensaje
Shell
No hay nuevos mensajes Averiguar Cuál Es El Programa Que Abre Un... shordi General 7 Lunes, 27 Abril 2015, 13:50 Ver último mensaje
shordi
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 0 invitados
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario