Bienvenido y disfruta el nuevo diseño del sitio web.... agradecería me envíes tus comentarios acerca de los cambios realizados

Para descargar cualquier archivo es necesario estar registrado y hacer click en el titulo del archivo a descargar

Consultar archivos

Visual Fox Pro, WMI Comentarios ( 0 ) »

Puedes consultar los archivos de un determinado directorio y que cumplan cierta condición.


Quiero consultar los archivos que están en el directorio "MiDir"

objWMI = GetObject("winmgmts:")

cCadWMI = ("Select * from CIM_DataFile where Path = '\\MiDir\\'")

oArchi = objWMI.ExecQuery(cCadWMI)


For Each oFile in oArchi
    ?oFile.Name + " - Tamaño: " + Transform(oFile.FileSize)
Next

 

En este caso quiero consultar todos los directorios que empiecen con b

objWMI = GetObject("winmgmts:")

cCadWMI = ("Select * from CIM_DataFile where Path = '\\MiDir\\' And FileName Like 'b%'")


oDisco = objWMI.ExecQuery(cCadWMI)

For Each oUnidad in oDisco

    ?oUnidad.Name
Next
 


O conocer los archivos de una determina extensión ... por ejemplo "ZIP".

objWMI = GetObject("winmgmts:")


cCadWMI = ("Select * from CIM_DataFile where Path = '\\MiDir\\' And Extension = 'ZIP'")

oDisco = objWMI.ExecQuery(cCadWMI)

For Each oUnidad in oDisco
    ?oUnidad.Name
Next


Por: David Amador T

Variables de entorno de Windows

Visual Fox Pro, Funciones API Comentarios ( 0 ) »

Otra forma de convertir de entero a Hexadecimal esta vez utilizando el API.


Puedes obtener las variables de entorno de Windows utilizando a función GETENV pero también puedes hacerlo con el API.

En este caso queremos conocer el valor que tiene la variable de Windows "PATH" ... pero también podemos con "TEMP", "WINDIR", "COMPUTERNAME", "SYSTEMROOT" ... entre otros.



Declare Integer

GetEnvironmentVariable

In
kernel32 ;
  
String
@lpName,
String
@lpBuffer,;

  
Integer
nSize

cRut = Space(8192)

=GetEnvironmentVariable(
"path",
@cRut,
Len(Space(8192)))
=
Messagebox(cRut)

 

Por: David Amador T

Convertir entero a Hexadecimal con API

Visual Fox Pro, Funciones API Comentarios ( 0 ) »

? int2hex(132)



Function int2hex (num)



  Declare
Integer
wnsprintf
In
Shlwapi;

    
STRING
@lpOut,
Integer
cchLimitIn,;

    
STRING
pszFmt,
Integer

   

  Local lnresult, lcresult


  lcresult =
Space(20)

  lnresult = wnsprintf(@lcresult, 20,
"%x",
num)

  Return
Left
(lcresult, lnresult)



Endfunc




Por: David Amador T

Convertir de Cadena a Entero

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Otra forma de convertir de cadena a entero esta vez utilizando el API.

DECLARE INTEGER StrToInt
IN
Shlwapi
STRING
lpSrc


? "CADENA A ENTERO"


? StrToInt("0")
? StrToInt("2.16")
? StrToInt("1285754.16")
? StrToInt("1AE2")



Por: David Amador T

Comparación de cadenas no senstiva

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Función bastante útil cuando deseas comparar si dos cadenas son iguales sin importar mayúsculas o minúsculas.


Clear

DECLARE INTEGER ChrCmpIA IN Shlwapi ;
As ChrCmpI SHORT w1, SHORT w2

?
"-----------------------------------"


? " Comparando
cadenas"

?
"-----------------------------------"

? " 0 = IGUALES
- 1 = DIFERENTES"
? "-----------------------------------"


? ChrCmpI(Asc("c"),
Asc("C"))

? ChrCmpI(Asc("v"),
Asc("C"))

? ChrCmpI(Asc("F"),
Asc("F"))

? ChrCmpI(Asc("V"),
Asc("M"))



Por: David Amador T

Cadena de conexión a FireBird utilizando el Driver de EasySoft

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Esta es la cadena de conexión del Driver de EasySoft que debes utilizar para cuando desees trabajar con FireBird.

*SERVIDOR = Puede ser el nombre del PC o la IP del mismo.

Tenga en cuanta que la base de datos puede ser extensión GDB o FDB.

cCad = "Driver={Easysoft IB6 ODBC};" + ;
                    "Server=SERVIDOR;" + ;
                    "Database=SERVIDOR:C:RutaBaseDatos.gdb;"+;

                    "Uid=USUARIO;" + ;
                    "Pwd=CLAVE"
 

 

Por: David Amador T

Convertir segundos a días - horas - minutos - segundos

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Código bastante útil .... podemos convertir un número determinado de segundos en días, horas, minutos...

nSeg = 276786

? Padl(Int( nSeg / 86400),3) + " Días ";
    + Padl(Int((nSeg % 86400)/3600),2,"0") + " Hrs ";
    + Padl(Int((nSeg % 3600)/60), 2, "0") + " Min ";
    + Padl(Int(nSeg %
60),2,"0") + "
Seg"


Por: David Amador T

Renombrar base de datos

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Excelente función que te permitirá renombrar una base de datos sin perder los vínculos de las tablas.


Por : Cetin Basoz

lcOldDBC = "NOMBREBASEDATOS"
lcNewDBC = "NUEVONOMBRE"

RenDbc(m.lcOldDBC, m.lcNewDBC)

Function RenDbc

    Lparameters OldName, NewName
    Open Data (OldName)
    lnTables=Adbobject(arrTables,"TABLE")
 
    For ix=1
To lnTables
         lcTable = arrTables[ix]+".DBF"
     ;    handle=Fopen(lcTable,12)

     =Fseek(handle,8,0)
        lnLowByte = Asc(Fread(handle,1))
       lnHighByte = Asc(Fread(handle,1))*256
        lnBackLinkstart = lnHighByte + lnLowByte - 263

    = Fseek (handle,lnBackLinkstart,0)
        Fwrite(handle,Forceext(NewName,"dbc" )+Replicate(Chr(0),263),263)
         =Fclose(handle)
    Endfor

    Close Data All

    Rename (Forceext(OldName,"dbc"))To (Forceext(NewName,"dbc"))
     Rename(Forceext(OldName,"dcx"))To (Forceext(NewName,"dcx"))
    Rename(Forceext(OldName,"dct"))To (Forceext(NewName,"dct"))
Endfunc

Por: David Amador T

Reproducir archivo con Windows Media Player

Visual Fox Pro, Trucos Comentarios ( 0 ) »

En este ejemplo utilizaremos el ActiveX de Windows Media Player para reproducir archivo de audio.


oPlayer =
CreateObject
("WMPlayer.OCX")
oPlayer.URL = GetFile("mp3;wav;mid;snd;midi;au")
 

INKEY(3,
"H")

=MessageBox("Terminado")

 

Por: David Amador T

Accesando datos de Paradox

Visual Fox Pro, Ejemplos - Código fuente Comentarios ( 0 ) »

Este es un ejemplo básico de como acceder a datos de Paradox desde VFP.

cCadCon = "CollatingSequence=ASCII;" ;
            +
"DBQ=C:DIRECTORIO;";
            +
"DefaultDir=C:DIRECTORIO ;";

            +
"Driver={Microsoft Paradox Driver *.db )};";
             +"DriverId=538;FIL=Paradox5.X;";
            +
"MaxBufferSize=2048;";
            +
"MaxScanRows=8;PageTimeout;";
            +
"ReadOnly=False;pwd=CLAVE"

nH = SqlStringConnect(cCadCon)


If nH <= 0
     =Messagebox("Error en la conexión")
    Return .F.
Endif
 

If
SQLExec(nH, "Select * From MiTabla","MiCURSOR") > 1
   Select MiCURSOR

    Browse
Endif

= SQLDisConnect(nH)


Por: David Amador T

Número de caracteres con API

Visual Fox Pro, Funciones API Comentarios ( 0 ) »

Función API parecida a la función LEN( ) de VFP.


Declare Integer lstrlen IN kernel32 String lpString


? lstrlen("La Web
de Davphantom"
)


Por: David Amador T

Convertir milisegundos al formato horas - minutos - segundos

Visual Fox Pro, Funciones API Comentarios ( 0 ) »

Excelente y fácil forma de convertir
milisegundos o segundos al formato horas - minutos - segundos



Declare Integer
StrFromTimeInterval
In Shlwapi;
   
STRING
@ pszOut,;

    INTEGER cchMax,;
   
INTEGER
dwTimeMS,;

    INTEGER digits
 

* Función API para calcular el número de milisegundos

* que lleva encendido el PC


Declare Integer GetTickCount In kernel32

nIni = GetTickCount()


cSalida = Space(50)


=StrFromTimeInterval (@cSalida,
Len(cSalida), nIni, 10)

?cSalida


 

 

Por: David Amador T

Particiones disponibles

Visual Fox Pro, WMI Comentarios ( 0 ) »

Puedes conocer toda información que desees acerca de las particiones que tiene tu PC.


cCadWMI = "Select * from CIM_DiskPartition"


oParti = objWMI.ExecQuery(cCadWMI)


For Each oDisco in oParti

    ? oDisco.Name + " - Tamaño: " +Transform(oDisco.Size) + ;

            " En: " + oDisco.SystemName + " - Tipo: " + oDisco.Type
Next
 

 

Por: David Amador T

Buscar archivos con WMI

Visual Fox Pro, WMI Comentarios ( 0 ) »

Puedes buscar los archivos con una determinada extensión ....

objWMI = GetObject("winmgmts:\")

cCadWMI = "Select * from CIM_DataFile where extension = 'exe'"


oArchivos = objWMI.ExecQuery(cCadWMI)


For Each oFile in oArchivos
    ? oFile.Name

Next
 

 

Por: David Amador T

Seleccionar los archivos de más de 1000000 bytes

Visual Fox Pro, WMI Comentarios ( 0 ) »

Deseas conocer los archivos que tienes en tu PC de un tamaño especifico??? ... Todo es posible con WMI.


objWMI = GetObject("winmgmts:\")


cCadWMI = "Select * from CIM_DataFile where FileSize > 10000000"
oArchivos = objWMI.ExecQuery(cCadWMI)


For Each oFile in oArchivos
    ? oFile.Name + " -- " + loFile.FileSize
Next

 

Por: David Amador T