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

Hacer que hable el PC

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Excelente truco que utiliza el objeto COM SAPI que viene con WinXP el cual
"pronuncia"
lo que le escribas.


oVoz = CreateObject("SAPI.SpVoice")

oVoz.Speak(
"Visual
fox Pro"
)

oVoz.Speak(
"Lo
mejor"
)



Por: David Amador T

Consultas parametrizadas con CursorAdapter a través de ADO

Visual Fox Pro, Trucos, SQL Server Comentarios ( 0 ) »

Un ejemplo completo de como realizar consultas básicas a una base de datos de SQL Server utilizando el objeto CursorAdapter a través de ADO.

Local oConn As ADODB.Connection, ;
oRS As ADODB.Recordset, ;
oCom As ADODB.Command

oConn =Createobject("ADODB.Connection")

cCadCon =
"Provider=SQLOLEDB.1;";
      + "Integrated Security=SSPI;";
            + "Persist Security Info=False;";

      +
"
Data Source=(Local)"

oConn.Open()

oCom = Createobject("Adodb.Command")

With oCom
    .ActiveConnection = oConn
    .CommandText="select * from Northwind..Orders where customerID = ?"
    .Parameters.Refresh()
    .Parameters(0).Value = "ALFKI"

Endwith

oRS = oCom.Execute()

Local oCAAs CursorAdapter

oCA =
Createobject
("CursorAdapter")
oCA.DataSourceType="ADO"
?oCA.CursorFill(,,,oRS)

List


Por: David Amador T

Convertir texto en archivo Wav

Visual Fox Pro, Trucos Comentarios ( 0 ) »

En este truco utilizaremos el objeto COM SAPI que viene con VFP para convertir una cadena de texto a un archivo de audio WAV.


oObjVoi = CreateObject("SAPI.SpVoice")
oObjStr = CreateObject("SAPI.SpFileStream")
oObjStr.Format.Type
= 6

oObjStr.open("c:Prueba.wav", 3)
oObjVoi.AudioOutputStream = oObjStr

oObjVoi.Speak("Visual Fox Pro")
oObjStr.close



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

Formatear números como tamaño en Bytes

Visual Fox Pro, Trucos Comentarios ( 0 ) »

Muy útil función API que nos permite convertir un número en su respectivo valor en Bytes - KB - MB - GB .... de forma muy sencilla.

Declare STRING StrFormatByteSize
IN
Shlwapi;

   
INTEGER
dw,
STRING
@ pszBuf,
INTEGER
cchBuf

 
    = _show (532)

    = _show (1340)

    = _show (23506)

    = _show (2400016)

    = _show (2400000000)

    = _show (4294967295)


 
Function _show (dw)
    pszBuf =
SPACE(50)
    ? dw, " -> "
    ?? StrFormatByteSize (m.dw, @pszBuf,
Len(pszBuf))


Endfunc

 

 


Por: David Amador T

Determinar si un archivo o archivos existen

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Otra forma en que podemos determinar si un archivo(s) existe en una ruta establecida. Es una rutina más dinámica que FILE(), puesto que puede evaluar archivos por extensión.... etc.

* Determina si existen archivos con extensión EXE


cRuta =
"C:"
?!Empty(Sys(2000,cRuta + "*.EXE"))

 
* Determina si existe archivo.EXE

cRuta = "C:"
?!Empty(Sys(2000,cRuta
+
"Archivo.EXE"))




Por: David Amador T

Accesar a tablas DBF desde VB utilizando ADO

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Y si de casualidad te dicen: "Necesito poder consultar los datos de tu programa, pero yo utilizo VB" ... Pues aquí tienes una forma sencilla de como acceder desde VB a las tablas DBF.


Set oConn = New ADODB.Connection
Set oRst = New ADODB.Recordset

cRuta = "c:RutaBaseDatos.DBC"

oConn.ConnectionString = "Driver={Microsoft Visual FoxPro Driver};UID=;" & _
                                     
"PWD=;SourceDB=" & cRuta & ";SourceType=DBC;" & _
                                     
"Exclusive=No;BackgroundFetch=Yes;Collate=" & _
                                      "Machine;Null=Yes;Deleted=Yes;"

oConn.CursorLocation = adUseClient
oConn.Open

oRst.Open "Select * from Ciudades", oConn, adOpenKeyset, adLockOptimistic, adCmdText
Do While Not oRst.EOF
    Print oRst!Munici
    oRst.MoveNext
Loop




Por: David Amador T

Determinar el tipo de archivo

Visual Fox Pro, Trucos Comentarios ( 0 ) »
En ocasiones queremos conocer cual es el programa que esta vinculado con un archivo. Esta rutina te ayudará.

oFSO = Createobject("Scripting.FileSystemObject")

oFile = oFSO.
Getfile(GetFile())
?
"Tipo: " + oFile.Type
 



Por: David Amador T

Información de TODA la configuración actual de VFP

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Este es uno de los trucos campeones ... Puedes obtener toda la información de la configuración actual de VFP.

Lo que debes hacer es ir al menú "Herramientas", luego seleccionas "Opciones" y ahora presiona la tecla SHIFT y
haces click en Aceptar; En la ventana de comandos de VFP obtendrás toda la información de la configuración de VFP.

 



Por: David Amador T

Extractar parte de una cadena

Visual Fox Pro, Trucos Comentarios ( 0 ) »
Este es uno de los trucos que siempre debemos tener bajo la manga, puesto lo requerimos con mucha frecuencia.

cStr = "DAVID AMADOR"
nPos = ATC(" ", cStr)
?
Substr(cStr,1, nPos-1)

?
Substr(cStr, nPos+1)

** Otra forma

For i = 1 To GetWordCount(cStr," ")
   ?
GetWordNum(cStr,
i,
" ")
Next
 


Por: David Amador T