Hola:
Requiero abrir bases de datos de un sistema el cual tiene mas de 8 caracteres, por ejemplo:
tb15050701.dbf
hay alguna forma de abrirla sin necesidad de renombrarla o copiarla a 8 caracteres ?????
use fw23,blinker 6.0, clip53
gracias x su ayuda
salu2
veracruz, mexico
Apertura de Dbf con Nombres largos
Re: Apertura de Dbf con Nombres largos
Yo tengo esta funcion que convierte nombres largos en cortos...
Haz algo asi dbUseArea(.T.,"",cShortName(cNombreLargo),"DBF"), en tu caso dbUseArea(.T.,"",cShortName("tb15050701.dbf"),"DBF")
Por si quieres te doy la funcion inversa:
Code: Select all
function cShortName( cLong )
local cShort :=space(164)+Chr(0)
local nBuffer:=164
local nLen
nLen :=GetSPName(cLong,@cShort,nBuffer)
cShort:=left(cShort,nLen)
return cShort
DLL32 STATIC FUNCTION GetSPName(lpszLongPath AS STRING,;
lpszShortPath AS STRING,;
lBuffer AS LONG ) ;
AS LONG PASCAL FROM "GetShortPathNameA" LIB "kernel32"
Por si quieres te doy la funcion inversa:
Code: Select all
function cLongName(cShort)
local cLong:=space(164)+chr(0)
local nBuffer:=164
local nLen
nLen:=GetLPName(cShort,@cLong,nBuffer)
cLong:=left(cLong,nLen) && Quitar para Windows NT
return cLong
DLL32 STATIC FUNCTION GetLPName(lpszShortPath AS STRING,;
lpszLongPath AS STRING,;
lBuffer AS LONG) ;
AS LONG PASCAL FROM "GetLongPathNameA" LIB "kernel32"
Mi abuelo decía: Los aviones vuelan porque Dios quiere, y los helicópteros ni Dios sabe porque vuelan.
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013
FWH 16.02, xHarbour 1.2.3, Harbour 3.2.0, WorkShop 4.5, AJ Make 0.30, Borlan BCC 7.00, VisualStudio 2013