Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Buscar archivos en VB

Estas en el tema de Buscar archivos en VB en el foro de Visual Basic clásico en Foros del Web. Hola. Necesito que alguien me diga como buscar un archivo desde VB. Lo que tengo que buscar es una *.jpg dentro de una carpeta. La ...
  #1 (permalink)  
Antiguo 19/08/2008, 05:22
 
Fecha de Ingreso: julio-2007
Mensajes: 79
Antigüedad: 17 años, 3 meses
Puntos: 0
Buscar archivos en VB

Hola. Necesito que alguien me diga como buscar un archivo desde VB. Lo que tengo que buscar es una *.jpg dentro de una carpeta.

La estructura de las carpetas es la siguiente.
Carpeta principal:
C:\fotos

Dentro de c:\fotos (carpeta) tengo muchas otras carpetas por ej.:
c:\fotos\0001 catedral lujan
c:\fotos\0002 delta tigre
c:\fotos\0003 arboleda pilar
c:\fotos\0004 lago

Y dentro de cada una de estas carpetas hay casi siempre cuatro archivos o mas que por ej. se llaman:
c:\fotos\0001 catedral lujan
0001 catedral de lujan.jpg
0001 slim catedral lujan mercedes.jpg
0001 catedral lujan.ec3

c:\fotos\0002 delta tigre
0002 delta tigre grande.jpg
0002 slim delta.jpg
0002 delta.ec3


Por ej. el dato que me viene a mi es "0002" y yo se que tengo imprimir los *.jpg que empiezan con 0002(0002 delta tigre grande.jpg) pero que no digan slim(0002 slim delta.jpg). Osea que dentro de la carpeta 0002 delta tigre hay dos archivos que empiezan con 0002 pero uno dice slim y el otro no.

Lo que tendria que hacer es guardar en una matriz el nombre y la ruta de cada jpg encontrado. Asi despues armar una cola de impresion. Lo mas probable es que no se me entienda bien asi que cualquier cosa trato de aclcar. Gracias.
  #2 (permalink)  
Antiguo 19/08/2008, 06:39
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 6 meses
Puntos: 839
Respuesta: Buscar archivos en VB

Puedes hacer un Dir que recorra la carpeta principal, luego que busque todas las carpetas, añada a un ListBox y ejecute el mismo procedimiento en las sub carpetas.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 19/08/2008, 06:46
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 6 meses
Puntos: 839
De acuerdo Respuesta: Buscar archivos en VB

Armé un ejemplo bien rápido que puede serte de utilidad:
Código PHP:
Sub MainFind(ByVal Path As StringByVal Find As String)
List2.AddItem Path
Do While List2.ListCount 0
    FindInDirectory List2
.List(0), Find
    List2
.RemoveItem 0
Loop
End Sub
Sub FindInDirectory
(ByVal Path As StringByVal Find As String)
Dim FileName As String
FileName 
Dir(Path FindvbArchive)
'Buscar dentro de la carpeta'
Do While FileName <> ""
    
List1.AddItem Path FileName
    FileName 
Dir
Loop
'Buscar SubCarpetas'
FileName Dir(Path "*.*"vbDirectory)
Do While 
FileName <> ""
    
If GetAttr(Path FileName) = vbDirectory And FileName <> ".." And FileName <> "." Then
        List2
.AddItem Path FileName "\"
    End If
    FileName = Dir
Loop
End Sub 
Necesitas tener dos ListBox, List1 donde se cargarán los resultados de la búsqueda, y List2 para buscar en las subcarpetas.

Solo necesitarás añadirle los filtros...
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 21/08/2008, 01:03
 
Fecha de Ingreso: julio-2007
Mensajes: 79
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Buscar archivos en VB

Muchas gracias por la ayuda lo estoy probando. Despues les cuento.
  #5 (permalink)  
Antiguo 22/08/2008, 03:23
 
Fecha de Ingreso: julio-2007
Mensajes: 79
Antigüedad: 17 años, 3 meses
Puntos: 0
Mensaje Respuesta: Buscar archivos en VB

Mas o menos va saliendo. pero como puedo buscar un directorio sabiendo solo la primeros cuatro caracteres que nunca se repiten ya que son numeros de 4 cifras EJ.
Nombres de Carpetas:
0001 xxxxx
0453 xxxxx
1231 xxxxx
yo se que existen las primeras cuatro cifras, pero no se los que viene despues en el nombre de las carpetas. Si veo que existe esa carpeta entrar y ahi si buscar el archivo que eso ya aprendi a hacerlo con el ejemplo que me pasastes. Pero lo que no tengo es nombre exacto de la carpeta sino que tengo solo los primeros cuatro caracteres que como son numero en este caso hago que nunca se repitan. Gracias.
  #6 (permalink)  
Antiguo 22/08/2008, 06:51
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 6 meses
Puntos: 839
Respuesta: Buscar archivos en VB

Solo una pregunta, ¿tú ya sabes qué dígitos son los primeros cuatro o cada vez son diferentes?. Si cada vez son diferentes y solo quieres buscar en las carpetas que tengan esos cuatro dígitos al comienzo podemos modificar la función MainFind para que filtre los nombres de las carpetas en las cuales buscar.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 22/08/2008, 07:24
Avatar de moradazo  
Fecha de Ingreso: julio-2008
Ubicación: [email protected]
Mensajes: 355
Antigüedad: 16 años, 4 meses
Puntos: 2
Respuesta: Buscar archivos en VB

Yo hice algo parecido no se si es tu caso

Lo que paso fue que en una red habian miles de carpetas todos con nombres diferentes, sus nombres son numeros, la constante que tenian esas carpetas era un rango, como en esta imagen que pongo:



Como puedes notar las carpetas van de 500 en 500, y es que cada carpeta contiene archivos que tienen de nombre un numero dentro de su rango, ejemplo, quiero buscar un archivo que se llama 470652, entonces solo me importa los primeros 3 numeros, los otros los busco por rangos para encontrar la ruta. Al finalizar, mi programa efectivamente encuentra la carpeta 470500_470999. No se si me entendiste o bien si este caso es parecido al tuyo.
  #8 (permalink)  
Antiguo 25/08/2008, 02:55
 
Fecha de Ingreso: julio-2007
Mensajes: 79
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Buscar archivos en VB

Con todos los datos que me fueron dando ya saque el programa de la cola de impresion. Gracias a todos. Lo que necesito es asi como hice el programa de las fotos en A4, necesito hacer los mismo pero para imprimir CD. Tengo una R220 y la unica manera que tiene para imprimir DVD es mediante el programa PRINTCD, el cual usa una extension .EC3 . Lo que se me ocurrio es usar un programa que graba las secuencias de los movimientos del mouse y sus clicks. Pero el problema que tengo, es que no puedo ejecutar el PrintCD desde el visual. Adentro de estas carpetas entre los .jpg tengo un archivo que se llama igual pero con extension .EC3

RutaFoto = "c:\fotos\0010 Max Payne\0010 basilica.ec3"
ActivarExe (RutaFoto)

Private Sub ActivarExe(rtafto As String)
MsgBox rtafto
Dim x
x = Shell(rtafto)
Rem AppActivate x
End Sub

Si hago esto me da error desde VB, pero si voy desde inicio ejecutar de el windows anda(carga el programa con su foto). Calculo que debe ser por un tema que no carga algun DLL o algo de esto. Como puedo hacer para que desde el VB cargue el programa con su foto ya que encuentro el archivo con su respectiva extensio. Gracias nuevamente.
  #9 (permalink)  
Antiguo 25/08/2008, 06:41
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 6 meses
Puntos: 839
De acuerdo Respuesta: Buscar archivos en VB

Para eso debes usar ShellExecute.

Véase la documentación (MSDN): http://msdn.microsoft.com/en-us/libr...53(VS.85).aspx
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #10 (permalink)  
Antiguo 27/08/2008, 04:55
 
Fecha de Ingreso: julio-2007
Mensajes: 79
Antigüedad: 17 años, 3 meses
Puntos: 0
Sonrisa Respuesta: Buscar archivos en VB

Tengo otra consulta. En la carpeta donde busco estos .jpg hay dos .jpg y uno se llama el numero + grande + descripcion.jpg (0060 grande iglesia.jpg) y el otro archivo(que es de medida normal) se llama numero + descripcion.jpg (0060 iglesia.jpg) el tema que yo busco quiero o solo imprimir todos los que digan grande o sino los que en la el nombre de el jpg no diga grande (0060 iglesia.jpg). El programa me anda bien pero a veces me imprime las fotos grandes y a veces las comunes depende como este el archivo en el directorio. Yo iintente hacerlo buscando en la cadena pero no me salio ya que la clave me parece que esta en que pase al siguiente arhivo.
Osea si yo estoy imprimiendo en tamaño comun que me saltee las que digan grande gracias

For i = 1 To t
Path = "c:\fotos\"
Dirname = Dir(Path & b(i, 0) & "*.*", vbDirectory)

archivo = "\" & b(i, 0) & grande & "*.jpg"

'intentando hacerlo pero no salio'
Rem If InStr(Archi, "grande") Then
Rem MsgBox "Se ha encontrado grande"
Rem archivo = "\" & b(i, 0) & " *.jpg"
Rem Else
Rem MsgBox "No se ha encontrado"
Rem End If

ArchivoaBuscar = Dir(Path & Dirname & archivo)
rutafoto = Path & Dirname & "\" & ArchivoaBuscar 'ruta completa y nombre del archivo'

If (ArchivoaBuscar) = ("") Then
m = m + 1
NoSeEncontro(m, 0) = b(i, 0)
NoSeEncontro(m, 1) = b(i, 1)
NoSeEncontro(m, 2) = b(i, 2)
NoSeEncontro(m, 3) = b(i, 3)
Else
For q = 1 To b(i, 1)
opa = opa + 1
Set imagen = LoadPicture(rutafoto)
Printer.Print b(i, 0)
Printer.PaintPicture imagen, 450, 450, 4041, 4547
Printer.EndDoc
MsgBox "cantidad de copias " & q & " del " & b(i, 0)
Next q
SeEncontro(opa, 0) = b(i, 0)
SeEncontro(opa, 1) = b(i, 1)
End If
Next i

Gracias
  #11 (permalink)  
Antiguo 27/08/2008, 09:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 6 meses
Puntos: 839
De acuerdo Respuesta: Buscar archivos en VB

El código no está completo así que no entendí lo que quieres hacer. Pero la idea de usar Instr está buena, prueba con esto:
Código PHP:
Dim FileName As String
FileName 
Dir("C:\fotos\*.jpg"vbArchive)
Do While 
FileName <> ""
      
If Instr(FileName"grande") > 0 Then
          
'El archivo contiene la palabra grande'
      
Else
          
'El archivo no contiene la palabra grande'
      
End If
      
FileName Dir
Loop 
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #12 (permalink)  
Antiguo 29/08/2008, 17:30
 
Fecha de Ingreso: julio-2007
Mensajes: 79
Antigüedad: 17 años, 3 meses
Puntos: 0
Respuesta: Buscar archivos en VB

Hola. Me va andando todo bien. ahora estoy haciendo los detalles. Como hago para que en la cola de la impresora me aparezcan los nombre de los jpg ya que hoy en dia me aparecen cada impresion como microsofot visual basic?
La otra es: Me pasastes un web para poder correr un exe desde VB que parece ser la pagina oficial de el VB. Apenas transcribo el texto a mi programa se pone todo el texto en rojo

HINSTANCE ShellExecute( HWND hwnd,
LPCTSTR lpOperation,
LPCTSTR lpFile,
LPCTSTR lpParameters,
LPCTSTR lpDirectory,
INT nShowCmd
);

que puedo hacer?

Gracias nuevamente. Saludos Ale.
  #13 (permalink)  
Antiguo 30/08/2008, 09:32
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años, 6 meses
Puntos: 839
De acuerdo Respuesta: Buscar archivos en VB

Esa es la declaración de la función de la API pero no es código de Visual Basic. Aquí un ejemplo por seba123neo:
http://www.forosdelweb.com/f69/inici...4/#post2103153
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:30.