Buscar archivo en mi PC

Para discutir temas generales, incluso si no tienen que ver directamente con Apache OpenOffice
Responder
Salva
Mensajes: 2
Registrado: Jue May 09, 2013 10:46 am

Buscar archivo en mi PC

Mensaje por Salva »

Ola a todo el mundo.

Sobre decir que soy novato.
Mi problema es que consigo por diversos medios tener en una variable el nombre de un archivo.
Lo que necesito es buscar ese archivo en el equipo, concretamente en la unidad de disco D, y dentro de ella en general que me busque en todos los directorios, y os prometo que no se, voy cogiendo alguna idea porque llevo toda la mañana investigando, pero no logro compilar la información de forma razonable.
Luego el tema de abrirlo lo veo más fácil, aunque para mas inri mi jefe me ha encargado que se abra en una ventana, por ejemplo en una celda de una tabla.
Con la primera información ya me conformaría, y si hay por ahi gente con ganas de ayudarme a que me cuelge una medalla sera agradecido hasta el final de los tiempos.
Yo esto de programar lo hago por placer, y de las cosas que mas me satisface es ver la cantidad de gente que estamos repartidos por el mundo con ganas de compartir lo que sabemos.
Un saludo desde Zaragoza (España)
SALVA
OpenOffice 3.2
Avatar de Usuario
RGB-es
Mensajes: 4739
Registrado: Lun Nov 24, 2008 10:46 am
Contactar:

Re: Buscar archivo en mi PC

Mensaje por RGB-es »

Dado que hablas de la unidad D, imagino que es un sistema windows ¿podrías dar más detalles como la versión del mismo o si la unidad está en el equipo en sí o en red? Yo en windows no puedo ayudarte, pero aquí en el foro hay gente con experiencia en ese sistema, por lo que si les das toda la información posible será más fácil para ellos el darte una mano.
No respondo mensajes privados sobre AOO/LibO, por favor, utilice el foro para sus preguntas

LibreOffice en openSUSE con escritorio Plasma
---
Existen dos clases de personas: las que dicen que existen dos clases de personas y las que no.
Avatar de Usuario
SLV-es
Mensajes: 4894
Registrado: Jue Ago 26, 2010 1:25 am
Ubicación: España
Contactar:

Re: Buscar archivo en mi PC

Mensaje por SLV-es »

Hola tocayo

Al menos, tengo soluciones para alguna parte.

Para abrir un documento desde por ejemplo, un botón de una hoja de cálculo, puedes consultar (y adaptar, por supuesto) esta macro: Ejecutar una aplicación o programa.

Para todo lo demás, puedes buscar información en:

Aquí también encontrarás macros que quizás puedas aplicar: http://blog.open-office.es/index.php/basic/

En la wiki oficial puedes encontrar el libro-manual-biblia de OOoBasic que ha escrito nuestro moderador Mauricio: http://wiki.openoffice.org/wiki/ES/Manu ... /StarBasic


Saludos
+info en la web "no oficial" dedicada a OpenOffice en Español
AOO 4.1.2 y LibO 4.4.6 en W10 y en Lliurex
No respondo mensajes privados sobre AOO, por favor, utiliza el foro para tus preguntas
xiseme
Mensajes: 1918
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Buscar archivo en mi PC

Mensaje por xiseme »

Sabemos que buscamos: miarchivo.es.este
Sabemos dónde buscar: D[irectorio]

Solo hay que ver la manera de recorrer el directorio y comparar
Seguramente habrá más hilos pero en este FORNELASA proporcionó una macro que recorre archivos de un directorio, y que emplea la función «Dir».

Mirando en la ayuda del programa (esa gran olvidada) en la propia explicación viene una macro para obtener los nombres de los directorios (opción 16) o los archivos (opción 0)

Código: Seleccionar todo

Sub ExampleDir
' Muestra todos los archivos y directorios
Dim sPath As String
Dim sDir As String, sValue As String
    sDir="Directorios:"
    sPath = CurDir 'Sustituir por /D[irectorio]
    sValue = Dir$(sPath + getPathSeparator + "*",16)
    Do
        If sValue <> "." And sValue <> ".." Then
            If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then
                ' Obtener los directorios
                sDir = sDir & chr(13) & sValue
            End If
        End If
        sValue = Dir$
    Loop Until sValue = ""
    MsgBox sDir,0,sPath
End Sub

Sub Main

End Sub
A poco que te lo trabajes tienes la medalla colgada del pecho :mrgreen:
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Salva
Mensajes: 2
Registrado: Jue May 09, 2013 10:46 am

Re: Buscar archivo en mi PC

Mensaje por Salva »

Viva la mama que os trajo al mundo.
Me parece que con un poco de esfuerzo voy a conseguir lo que quiero, acabo de ver la ayuda del propio programa como me indicais y creo que por ahi va a estar la solución.
Ni se me había ocurrido, pero esta bastante completita, y yo buscando como un loco por Internet.
Del Mauricio, me he bajado el manual, y lo que pienso es que si hay algun tipo que es capaz de hacer un manual de 580 hojas, y compartirlo con el resto del mundo, por nada, creo que si hay cielo, cuando le toque le diran pasa, pasa, y no le pediran nada más.
Bueno chicos y chicas, voy a intentar progresar un poco y si no lo consigo volveré a dar un poco de mal.
Tengo pensado, cuando termine mi encargo, ya os preguntaré y lo colgaré por si a alguien le puede venir bien.
Mi trabajo es de funcionario, y tendré que cambiar algunas cosas, pero la esencia creo le podría venir bien a alguien.
Saludos y siempre gracias, desde Zaragoza(España)
SALVA
OpenOffice 3.2
xiseme
Mensajes: 1918
Registrado: Lun Nov 24, 2008 1:13 pm

Re: Buscar archivo en mi PC

Mensaje por xiseme »

... voy a conseguir lo que quiero
Queriendo, ¡ni lo dudes! ** Ya habrás descubierto FileExists("ruta") ;)

En proceso ... ... sobre la marcha y sin comprobar

Supongamos sPath = /Directorio
MiArch = miarchivo.es.este

Quizás convenga en formato función que te devuelva la ubicación

Código: Seleccionar todo

Function RutaEnMiPC( MiArch As String, Optional sPath As String, Optional IncluirNArch As Boolean) As String
If IsMissing(sPath) Then sPath ="C"	'<-- directorio en el que buscará por defecto
If IsMissing(IncluirNArch) Then IncluirNArch = False	'<-- por defecto solo queremos la ruta sin nombre del archivo
If IsMissing(MiArch) Then
	RutaEnMiPC = "no has puesto qué buscar"
	Exit Function
End If

sValue = Dir$(sPath + getPathSeparator + "*",16)

Do
	If sValue <> "." And sValue <> ".." Then	'<-- solo si es distinto de . o ..
	    If (GetAttr( sPath + getPathSeparator + sValue) And 16) >0 Then <--- solo si es directorio
	        ' Obtener los directorios
		'---aqui sValue es el nombre de un subdirectorio digamos Subdir1
		'---Si por casualidad tu miarchivo.es.este estuviera en él su ruta completa sería
		'--- /Directorio/Subdir1/miarchivo.es.este o lo que es lo mismo
		'---sPath + getPathSeparator + sValue + getPathSeparator + MiArch
		'---Por lo que 
		Dim sRuta As String
		sRuta = sPath + getPathSeparator + sValue + getPathSeparator 
		If FileExists(sRuta + MiArch) Then
			'Msgbox MiArch & " está en " & sRuta
			'y/o todo lo que haya que hacer en tal caso
			GoTo FINAL
		Else 'No está en ese subdir1
		'Bucle para ver si tiene otro nivel de subdirectorio
		'y acciones que correspondan en su caso
		End If
	    
	    End If
	End If
	sValue = Dir$
    Loop Until sValue = ""
Exit Function
FINAL:
If IncluirNArch Then sRuta = sRuta & MiArch
RutaEnMiPC = sRuta
End Function
Hay que buscar la manera de "bajar" de subdirectorio en subdirectorio :?: ;)

** [offtopic]
Apuesto pierna delantera de ternasco (acompañado de un buen Somontano también vale) que ya alguien lo ha hecho, pero nada como lograrlo uno mismo. Buscar colaboración también es conseguirlo: honremos el trabajo de los que como Mauricio contribuyen a la «sociedad del bien-común»
Todo es mejorable, estamos dispuestos a mejorar. ¿Yo? ... poco a poco.
Nunca hay acritud en mis comentarios, si lo pareciera, seguro que me he expresado mal.
Responder