FranciscoA wrote:Adrian.
Se que lo haz solucionado con el excelente codigo de Carlos Navarro.
Por otro lado, suponiendo que controlas, en una variable, el path principal de tu aplicacion, creo que también podrías hacer:
- Code: Select all Expand view
Function ExtraeCad()
Local cDir
Local cCad := "C:\PROY_HB\PROVEEDOR\EMP07\CATALOGO.DBF"
local nSubCad1
Local nSubCad2 := Len(cCad)
//cDir := "C:\PROY_HB\PROVEEDOR" //controlando el path principal sin "\" al final
cDir := "C:\PROY_HB\PROVEEDOR\" //controlando el path principal con "\ al final
nSubCad1 := Len(cDir)+ if(Right(cDir,1,1)="\",1,2)
Return MsgInfo( SubStr(cCad, nSubCad1, nSubCad2) )
Saludos.
Hola buenos dias Ing. Francisco, gracias por tu interes y tu tiempo y compartir tu codigo ,funciona bien y hace lo que necesito .
Exactamente como tu dices tengo un archivo proveedor.ini para la ruta de archivos comunes que indico como path y para bases de datos la ruta EMP01\CATALOGO.DBF de datos de movimientos de cada empresa y es asi como lo tengo y ya lo tengo mejorado, que ya puedo accesar en redes del servidor sin necesidad de crear la unidad a compartir ,asi ya estare mas tranquilo que no podran eliminar carpetas por error o acccidental,solo eso me faltaba extraer EMP07\CATALOGO.DBF para que no tenga que hace un USE C:\PROY_HB\EMPRESAS\EMP01 y minimizar que haga el use EMPRESAS\EMP01 sin la diagonal, ya que con la diagona\ marca error al hacer USE ,por eso la necesidad de extraer la cadena a la derecha y gracias de nuevo por compartir su codigo .
Las tres funciones son muy buenas ,ayer precisamente queria ver como modificar la funcion ExtraeCad() del Ing. Cristobal Navarro que no me muestre la diagonal al principio y no le halle, estuve revisando y depurando su funcion del Ing. Cristobal y nada,solo el Ing. sabe y conoce su funcion ,y asi tenerlo las tres alternativas funciones que pueden servir .
Gracias a ambos .
Saludos y buen dia.
Atte: Adrian C. C.