Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 3
Ir a la página 1, 2, 3  Siguiente
 
Ayuda En Listadode Archivos Para Catalogar Thumbnails
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Ayuda En Listadode Archivos Para Catalogar Thumbnails 
 
hola amigos,  soy nuevo en esto, quiero saber como logro hacer lo siguiente.
tengo un formulario que quiero  me muestre los nombres de archivos con una extensión específica.
con la agravante siguiente el formulario debe ir creando la lista divididas en X cantidad de lineas, Me explico, si tengo 100 archivo, pero yo quiero que me muestra todos los archivos pero de 20 en 20, creando así cuadros de 20 archivos crearía entonces, 5 cuadros con todos os archivos según la extensión que especifiqué.,, y como si fuese poco necesito que haga todo esto con cada sub directorio dentro de un directorio.
ejemplo general,
crear especie de  thumbnails

quiero me muestre todos los archivos mp3 que están en sub carpetas dentro de la carpeta música
están de la siguiente manera

/musica/artista/cancion.mp3

de esta manera si el artista tiene 40 canción debe crearme 2 listas de 20 canciones del artista . y proseguir en el próximo subdirectorio

/musica/artista2/cancion.mp3

ojo: si la cantidad de archivos nos es múltiplo de 20, osea es inexacto a 20,40,60, etc continúe dejando los espacios en blanco y continúe con el proximo subdirectorio

/musica/artista3,/cancion.mp3

lógicamente como no se sabrá la cantidad de archivos exactos y es variante, el programa debe crear dichas listas a según vaya "ENUMERANDOLAS" con esto quiero decir que no puedo limitar a 4 o 5 "Listbox" (o cualquier objeto control que ustedes me indiquen)
porque si tengo 30 directorios y   mil archivos debe crear como "PAGINAS SIGUIENTE" según las necesidades

post-data: no espero que me hagan todo el trabajo, solo quiero aprender que usar ustedes me diran debes crear un list box o un grid o X,.. con tal otra cosa creas esto, y para que se creen las lsitas segun cantidad de archivos es esta rutina, etc etc,, se que implica varias cosas,ymetodos, pero quiero queme orienten para yo hacerlo,
 



 
emerling - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayuda En Listadode Archivos Para Catalogar Thumbnails 
 
Pues... empieza a andar y pide cosas más concretas, que no pides tú na así de sopetón, digo.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayuda En Listadode Archivos Para Catalogar Thumbnails 
 
Bienvenido emerling

Supongo que lo que shordi quiere decir es que tu problema es bastante complejo y que sería necesario abordarlo por partes y no como un todo  

Si planteas cómo paginar, por ejemplo, la salida de un listado con SHELL "ls /musica/*.mp3" sería más fácil ofrecer una posible solución, que si lo planteas todo de una sola vez.

Para listar los directorios puedes usar un control DirChooser y en función del directorio escogido, listar al lado en un ColumnView.
Para este caso concreto, mi consejo es que utilices un ColumnView, que te permite añadir un icono delante del texto. La salida del anterior comando, la puedes guardar en una variable string y hacer un split por nueva línea, o llenar un array de cadenas parseando lo que sea necesario. Según la longitud del array, vas llenando el ColumnView con el nº de elementos necesarios, etc...

Es una idea muy general, que seguro ya habrías pensado, pero es todo lo que se me ocurre ahora mismo.

Lo que no comprendo muy bien es por qué quieres limitar o paginar los resultados a 20, cuando el control FileChooser te permite ver todo, con posibilidad de scroll y limitando únicamente el nº de items visibles por el tamaño del control.

Espero que te sirva la idea y que otros puedan ofrecer las suyas convenientemente.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayuda En Listadode Archivos Para Catalogar Thumbnails 
 
Saxto Jesús, eso quería decir, que hay tantas maneras de pelar ese gato que ni te cuento. Lo mejor es que elija una línea de acción y luego plantee los problemas concretos que le surjan.
 




===================
No podemos regresar
 
shordi - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayuda En Listadode Archivos Para Catalogar Thumbnails 
 
por ejemplo en fragmento de código tienes una rutina que sirve para obtener de forma recursiva listados de archivos con su path completo.

Ve planteando los problemas que te vayan saliendo
 



 
soplo - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayuda En Listadode Archivos Para Catalogar Thumbnails 
 
ok, iré tratando de la manera que mas o menos entiendo, ,,
 quiero mas o menos esto que vi en San google
vrockola_multimedia_and_graphics_media_management-3294-screenshot
 ahora bien leyendo aqui y alla, logre hacer lo siguiente con un botón que genera el evento click y coloque esto queiba a un listbox
no me pregunten el porque d e los nombre de las variables sCads etc, buscando ejemplos y probando con "ls" etc etc entre los ejemplo estofuué lo que me quedo

DIM sCads AS NEW String[]
DIM Buf AS String
DIM Bucle AS Integer
'EXEC ["find", "./", "-maxdepth", "1", "-type", "d"] TO Buf  ------------------- aqui es para listar los  directorios
EXEC ["find", "./", "-name", "*.mp3"] TO Buf
sCads = Split(Buf, "\n")
sCads.Remove(0)
sCads.Remove(sCads.Count - 1)

FOR Bucle = 0 TO sCads.Count - 1
ListBox1.Add(sCads[Bucle])
NEXT

ahora bien el me coloca los nombres perfectamente.. y me hace un listado, el problema es, CREAR en tiempo de ejecución los listbox según la cantidad de directorios y archivos debo limitar el listbox (o cualquier control que ustedes me indiquen) a unas cuantas lineas ejemplo 20 e ir distribuyendolos por todo el formulario, y al ocupar los listbox toda la pantalla crear en tiempo de ejecucion los siguientes formularios y listbox    

ojo.... no es necesario o tiene que ser listbox, a mi lo que me importa es que genere en pantala del formulario todos las lista de directorios y archivos cn cualquier control o manera
 



 
emerling - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayuda En Listadode Archivos Para Catalogar Thumbnails 
 
También podrias tener 4 listbox y dos botones de paginación, incluso un scroll.
Primero recorreria todas las carpetas usando las funciones que nos permiten recorrer archivos y carpetas:
Dir, Exist, IsDir ...
Te creas una clase Artista y otra Disco, la clase artista tendrá una matriz de objetos Disco.
En el formulario creas una matriz de artistas que rellenaras al momento de recorrer las carpetas.
Con esto tienes toda la estructura en memoria (no se hasta que punto seria rentable en colecciones muuy grandes).
A partir de aquí haces las funciones necesarias para recorrer la matriz y mostrar los elementos en los controles pertinentes del formulario.
Si fijas la vista a 4 listbox no tendras muchos problemas para mostrarlo, en cambio para usar una cantidad aleatoria de controles deberas crearlos en tiempo de ejecución.
Parece que puede hacerse de esta forma:

 DIM hButton AS Button
 hButton = NEW Button (ME) AS "hButton"
 hButton.X = 215
 hButton.Y = 60
 hButton.Width = 200
 hButton.Height = 40
 hButton.Enabled = TRUE
 hButton.Text = "Click or press ESC to Quit"
 hButton.Border = TRUE
 hButton.Default = TRUE
 hButton.Cancel = TRUE
 hButton.Show

Aunque no se como enlazar los controles creados a sus eventos correspondientes.
En un manual he visto que debes crear la función del evento para cuando crees el control, pero no se si cuando creas el control en ejecución busca sus eventos en el código de forma automática.
Esta parte no la tengo muy clara, ya que representa que debes saber de antemano los controles que vas a crear para poder hacer sus eventos antes.

Bueno, perdón por el rollazo, espero que te sirva de algo.
Saludos,
Maikl
 



 
maikl - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayuda En Listadode Archivos Para Catalogar Thumbnails 
 
Bueno, he hecho una prueba de lo que habia dicho antes y de momento funciona.
A partir de una ruta te construye los artistas, albumes y canciones que encuentra siempre suponiendo un orden lógico de jerarquia de carpetas.
Primera carpeta es artista, dentro tiene carpetas que son los albumes y dentro los mp3 con canciones.

Código del programa

Clase Discoteca
' gambas class file

'Creamos una matriz de artistas.
PUBLIC oArtistas AS Object[]
PRIVATE strRuta AS String

PUBLIC SUB _new()
  
  oArtistas = NEW Object[]
  
END


PUBLIC SUB Iniciar(strRutaInicial AS String)
  
  DIM strArchivo AS String
  DIM oArtista AS clsArtista
  
  'Comprobamos si tenemos acceso a la ruta dada.
  IF Access(strRutaInicial, gb.Read) = TRUE THEN
    strRuta = strRutaInicial 'Guardamos la ruta.
    'Recorremos los archivos de la carpeta en busca de otras carpetas.
    FOR EACH strArchivo IN Dir(strRuta)
      'Si el archivo es una carpeta continuamos. (No se como buscar solo carpetas).
      IF IsDir(strRuta & "/" & strArchivo) = TRUE THEN
        'Creamos un objeto del tipo artista.
        oArtista = NEW clsArtista
        oArtista.ObtenerCarpeta(strruta & "/" & strArchivo)
        oArtista.strNombre = strArchivo
        oArtistas.Add(oartista)
      ENDIF
    NEXT
  ENDIF
  
END

PUBLIC FUNCTION BuscarArtista(strBuscar AS String) AS Integer
  
  DIM i AS Integer
  
  FOR i = 0 TO oArtistas.Count - 1
    IF oArtistas[i].strNombre = strBuscar THEN
      RETURN (i)
      EXIT
    ENDIF
  NEXT
  i = -1
  
END


Clase Artista
'
gambas class file

PRIVATE strRuta AS String

PUBLIC strNombre AS String
PUBLIC intNumDiscos AS Integer
PUBLIC oAlbumes AS Object[]

PUBLIC SUB ObtenerCarpeta(strNuevaRuta AS String)
  
  DIM strArchivo AS String
  DIM oAlbum AS clsAlbum
  
  oAlbumes = NEW Object[]
  
  'Comprobamos si tenemos acceso a la ruta dada.
  IF Access(strNuevaRuta, gb.Read) = TRUE THEN
    strRuta = strNuevaRuta 'Guardamos la ruta.
    'Recorremos los archivos de la carpeta en busca de otras carpetas.
    FOR EACH strArchivo IN Dir(strRuta, "")
      'Si el archivo es una carpeta continuamos. (No se como buscar solo carpetas).
      IF IsDir(strRuta & "/" & strArchivo) = TRUE THEN
        'Creamos un objeto album y lo iniciamos con la ruta.
        oAlbum = NEW clsAlbum(strRuta, strArchivo)
        'Llamamos a la función que nos busca los mp3 del álbum y llena el objeto.
        IF oAlbum.ObtenerCanciones() = TRUE THEN
          'Si todo ha ido correcto añadimos el album en la matriz.
          oAlbumes.Add(oAlbum)        
        ENDIF        
      ENDIF
    NEXT  
  ENDIF
  intNumDiscos = oAlbumes.Count
  
END

PUBLIC FUNCTION BuscarAlbum(strBuscar AS String) AS Integer

  DIM i AS Integer
  
  FOR i = 0 TO oAlbumes.Count - 1
    IF oAlbumes[i].strNombre = strBuscar THEN
      RETURN (i)
      EXIT
    ENDIF
  NEXT
  i = -1
    
END
 


Clase Album

' gambas class file

PRIVATE strRuta AS String
PUBLIC strCanciones AS String[]

PUBLIC strNombre AS String
PUBLIC intNumCanciones AS Integer

PUBLIC SUB _new(strNuevaRuta AS String, strNuevoNombre AS String)
  
  'Iniciamos el objeto con los valores pasados por parámetro al crear.
  strNombre = strNuevoNombre
  strruta = strNuevaRuta
  intNumCanciones = 0
  strCanciones = NEW String[]
  
END

PUBLIC FUNCTION ObtenerCanciones() AS Boolean
  
  DIM strArchivo AS String
  
  'Buscamos las canciones en la ruta indicada.
  IF IsDir(strruta) THEN
    FOR EACH strArchivo IN Dir(strRuta & "/" & strNombre, "*.mp3")
      strCanciones.Add(strArchivo)
    NEXT
    intNumCanciones = strCanciones.Count
    RETURN TRUE
  ELSE
    RETURN FALSE
  ENDIF
    
END
 


Formulario con 3 listbox y un botón.

Código del formulario.
' gambas class file

oDiscoteca AS clsDiscoteca
PUBLIC intArtista AS Integer
PUBLIC intAlbum AS Integer

PUBLIC SUB _new()
  
  oDiscoteca = NEW clsDiscoteca
  intArtista = -1
  intAlbum = -1
  
END

PUBLIC SUB Form_Open()

END

PUBLIC SUB Button1_Click()
  
  DIM oArtista AS Object
  
  oDiscoteca.Iniciar("/home/maikl/musica")
  
  ListBox1.Clear
  listbox2.Clear
  listbox3.Clear
  FOR EACH oArtista IN oDiscoteca.oArtistas
    ListBox1.Add(oArtista.strNombre)
  NEXT
    
END

PUBLIC SUB ListBox1_Click()
  
  DIM oDisco AS Object  
  
  IF ListBox1.Text <> "" THEN
    listbox2.Clear
    listbox3.Clear
    intArtista = oDiscoteca.BuscarArtista(ListBox1.Text)
    IF intArtista >= 0 THEN      
      FOR EACH oDisco IN oDiscoteca.oArtistas[intArtista].oAlbumes
        listbox2.Add(oDisco.strNombre)
      NEXT
    ENDIF
  ENDIF
  
END

PUBLIC SUB ListBox2_Click()

  DIM strCancion AS String
  
  IF ListBox2.Text <> "" THEN
    listbox3.Clear
    IF intArtista >= 0 THEN      
      intAlbum = oDiscoteca.oArtistas[intArtista].BuscarAlbum(ListBox2.Text)      
      IF intAlbum >= 0 THEN      
        FOR EACH strCancion IN oDiscoteca.oArtistas[intArtista].oAlbumes[intAlbum].strCanciones
          listbox3.Add(strCancion)
        NEXT
      ENDIF      
    ENDIF
  ENDIF
  
END

 


A mi me ha funcionado, supongo que tendrias que cambiar la ruta de origen.
Faltan comentarios y explicaciones pero es que es muy taaarde y mañana hay curroooggghh
buenas noches!
 



 
maikl - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayuda En Listadode Archivos Para Catalogar Thumbnails 
 
Mil gracias, de verdad, todo esta claro me has dado un gran empujón, estaba enredado con lo delas matrices y los bucles no me salia bien, complementado lo que hiciste, de seguro daré unos cuantos pasos mas, gracias.. mil gracias de todo corazón por todo tu tiempo, paciencia y dedicación
 desde Venezuela  un amigo.

ahora a probar...
 



 
emerling - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Ayuda En Listadode Archivos Para Catalogar Thumbnails 
 
bueno me sale un error y no le he dado la vuelta,     pantallazo_gambas_1

el extracto de la clase es
PRIVATE strRuta AS String
 
PUBLIC strNombre AS String
PUBLIC intNumDiscos AS Integer
PUBLIC oAlbumes AS Object[]
 
PUBLIC SUB ObtenerCarpeta(strNuevaRuta AS String)
  
  DIM strArchivo AS String
  DIM oAlbum AS clsAlbum   <<<<<<<<<<<<<<<<<<<<< esta es la linea del error en Artista.class
  
  oAlbumes = NEW Object[]
  
  'Comprobamos si tenemos acceso a la ruta dada.
  IF Access(strNuevaRuta, gb.Read) = TRUE THEN  
    strRuta = strNuevaRuta 'Guardamos la ruta.
 



 
emerling - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Konvertilo Un Programa Para Procesar Archivos tincho Aplicaciones/Fragmentos de Código 23 Martes, 20 Junio 2017, 18:04 Ver último mensaje
shordi
No hay nuevos mensajes Archivos Para Copiar En Cola Shell Mundo Linux 5 Martes, 09 Enero 2018, 09:35 Ver último mensaje
Shell
No hay nuevos mensajes Ejecutar Archivos Audio MP3 Con La Clase &... vuott Aplicaciones/Fragmentos de Código 5 Lunes, 02 Diciembre 2019, 13:28 Ver último mensaje
tincho
No hay nuevos mensajes Copia De Los Archivos Fuente Para Salvaguarda Shell PHP 3 Jueves, 11 Junio 2020, 22:03 Ver último mensaje
gambafeliz
 

Publicar nuevo tema  Responder al tema  Página 1 de 3
Ir a la página 1, 2, 3  Siguiente

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
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
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron