Introducción a Foxtools
28/03/2020
Índice
Foxtools es una biblioteca API de Visual FoxPro que ofrece archivos DLL de Windows para su utilización en Visual FoxPro.
Las funciones de la biblioteca Foxtools le permiten establecer y obtener información de archivo, manipular rutas de acceso y nombres de archivo, usar avisos del sistema y realizar muchas otras funciones.
Nota Los servicios de soporte técnico de producto de Microsoft (PSS) no ofrecen soporte para las funciones de FoxTools ni por correo electrónico ni por teléfono. Muchas de estas funciones se incluyen por razones de compatibilidad con FoxPro 2.6. Algunas funciones tienen un comportamiento diferente en distintas plataformas. [1]
Se han agregado a Visual FoxPro varias funciones de manipulación de nombres de archivo en Foxtools.fll. Desde la versión VFP 7.0 y posteriores ya no es necesario utilizar SET LIBRARY TO FOXTOOLS.FLL para llamar a estas funciones. Como ocurre con las funciones nativas de Visual FoxPro, puede llamarlas directamente en sus programas de Visual FoxPro. Estas funciones son las siguientes:
Función AddBS( )
Función AGetFileVersion( ) (GetFileVersion( ) en FoxTools)
Función DefaultExt( )
Función DriveType( )
Función ForceExt( )
Función ForcePath( )
Función JustDrive( )
Función JustExt( )
Función JustFName( )
Función JustPath( )
Función JustStem( )
Cuando instale Visual FoxPro, Foxtools.fll se instala en el directorio principal de Visual FoxPro. Para usar las funciones de Foxtools, ejecute el siguiente comando en la Versión 6.0 y anteriores:
SET LIBRARY TO Foxtools
En la Versión 7.0 y posteriores no es necesario ejecutar el comando anterior.
Nota Las rutinas de la API están documentadas en la sección Referencia profesional de la Ayuda en Creación de bibliotecas API. Estas rutinas se asignan a funciones de editor y ventana, y le permiten extender Visual FoxPro con el lenguaje de programación C.
Foxtools.chm es el archivo de ayuda Foxtools que se encuentra en el directorio principal de Visual FoxPro. Revise este documento donde encontrará las funciones disponibles. [1]
RegFn( ), RegFn32( ) y CallFn( )
La biblioteca API Foxtools permite a los programas de Visual FoxPro llamar a las funciones de archivos DLL de Windows que cumpla con los siguientes requisitos:
- utilicen los siguientes argumentos: integer, long, float, double, string/buffer. Se pueden pasar por referencia o por valor.
- devuelven los siguientes tipos: integer, long, float, double, string/buffer. Sólo se devuelven por valor.
Una sorprendente cantidad de funciones API de Windows cumplen con estos criterios.
Las funciones de archivos DLL de Windows están documentadas en los libros incluidos en el Software Development Kit (SDK) de Windows. El SDK de Windows también se incluye en Microsoft C/C++ 7.0 y Visual C++. [1]
Se utilizan dos funciones FLL para proporcionar esta funcionalidad:
- RegFn( ) y RegFn32( ) registran una función y los argumentos que utiliza
- CallFn( ) llama a una función registrada.
RegFn( ) y RegFn32(FunctionName, ArgTypes, ReturnType, DLLName) devuelve FnHandle
Si tiene éxito, RegFn( ) y RegFn32( ) devuelven un número que puede usarse para hacer referencia a la función en futuras llamadas a CallFn.
Devuelve -1 si no se pudo abrir la biblioteca y, además, mostrará un cuadro de mensaje. Estos no pueden ser deshabilitados.
El primer argumento es el nombre o el valor ordinal de la función que se registrará.
El segundo argumento es una cadena de caracteres que describe qué argumentos aceptará la función. Se permiten los siguientes valores:
- I - Integer - Entero
- L - Long - Largo
- C - String of characters - Cadena de caracteres
- F - Floating point number - Número de coma flotante
- D - Double precision floating point number - Número de coma flotante de precisión doble
Cada tipo de argumento puede estar precedido por una @ para indicar que el argumento se pasa por referencia. El valor predeterminado es pasar argumentos por valor.
El tercer argumento es el tipo de retorno de la función. Los valores permitidos son los mismos que se dieron anteriormente para el argumento, excepto que el retorno por referencia no está permitido.
El cuarto argumento da el nombre de la biblioteca DLL que contiene la función. Esto es opcional si el nombre de la función (y no un número ordinal) se proporciona en el primer argumento. En este caso, todas las bibliotecas cargadas previamente se buscan en el orden inverso en que se cargaron. Si no se encuentra la función, se buscan las bibliotecas estándar de Windows (es decir, user.exe, krnl386.exe y gdi.exe). Si la DLL está en uno de los lugares habituales, entonces no tiene que contener la ruta. Consulte la función SDK de Windows LoadLibrary para obtener detalles exactos sobre dónde se ve.
La misma función se puede registrar más de una vez. Esto permite utilizar funciones que toman diferentes argumentos al declararlos nuevamente con diferentes tipos de argumentos.
Muchas funciones que aceptan parámetros de cadena asignan un significado especial a una cadena NULL. Puede pasar un puntero NULL a una función que espera una cadena pasando un 0 en lugar de la cadena.
allFN (FnNum, Arg1, Arg2, ....) devuelve el valor de FnNum
Toma al menos un argumento, un identificador de función de una llamada previa a RegFn. Debe pasar tantos argumentos como declarar cuando se declara la función o producir un error.
Todos los argumentos deben coincidir con su tipo declarado de la siguiente manera:
F, D: debe ser un número de coma flotante
I, L - debe ser un número entero
C: debe ser una cadena pasada por valor o 0 (cero). Si 0, se pasa un puntero nulo.Devuelve el valor que devuelve la función, usando el tipo declarado por ReturnType en la llamada RegFn. [2]
Para obtener más información sobre las DLL de Windows
La funcionalidad de este FLL está limitada principalmente por su imaginación y su conocimiento de la API de Windows. A pesar de las restricciones aparentemente estrictas, puede hacer una cantidad sorprendente con solo usar la API de Windows. Busque en el directorio \foxprow\goodies\foxtools algunos programas de ejemplo que usan estas funciones.
Las funciones de DLL de Windows están documentadas en los libros que vienen con el Kit de desarrollo de software de Windows. El SDK de Windows también incluye con Microsoft C / C ++ 7.0 y Visual C ++. Estos libros también están disponibles por separado en muchas librerías técnicas. [2]
Las siguientes funciones proporcionadas en FOXTOOLS.FLL no son compatibles con los Servicios de soporte técnico de productos (PSS) de Microsoft, ya sea electrónicamente o por teléfono. Fueron desarrolladas para uso interno por algunas de las herramientas de FoxPro, y aunque estas funciones han existido por un tiempo, ninguna de ellas ha pasado por un verdadero ciclo de prueba para probar su uso en otros programas. Sin embargo, entendemos que, como desarrolladores, es importante obtener herramientas lo antes posible, incluso si no son totalmente compatibles, por lo que hemos incluido la siguiente documentación. Tenga en cuenta que estas funciones pueden no ser compatibles en todas las versiones de FoxPro. [2]
ADDBS() Returns: Character Description: Returns with a backslash appended if needed. Example: ? ADDBS("C:") (returns: C:\) ? ADDBS("C:\") (returns: C:\) CLEANPATH(<ExpC>) Returns: Character Description: Will return a corrected filename (best guess) for an invalid filename. Removes spaces, invalid characters, duplicate backslashes, etc. Example: ? CLEANPATH("THISISALONGFILE") (returns: THISISAL) <--- Eight Characters ? CLEANPATH("C:D:\\THISISALONGFILE") (returns: D:\THISISAL) DRIVETYPE(<ExpC>) Returns: Numeric Description: Returns the type of drive passed in <ExpC> 0 - No type 2 - Floppy Disk 3 - Hard Disk 4 - Removable / Network Drive Example: ? DRIVETYPE("C:") (returns 3) DEFAULTEXT(<ExpC1>, <ExpC2>) Returns: Character Description: Returns <ExpC1> with new extension, if it didn't already have one. <ExpC1> - File name (With or without a path or extension) <ExpC2> - Extension (Without a period) Example: ? DEFAULTEXT("C:\DOS\SETVER", "FLL") (returns: C:\DOS\SETVER.FLL) ? DEFAULTEXT("C:\DOS\SETVER.TXT", "FLL") (returns: C:\DOS\SETVER.TXT) FORCEEXT(<ExpC1>, <ExpC2>) Returns: Character Description: Returns string with old extension replaced with new extension <ExpC1> - File name (With or without a path or extension) <ExpC2> - Extension (Without a period) Example: ? FORCEEXT("C:\FOXPROW\FOXTOOLS.FLL", "DLL") (returns: C:\FOXPROW\FOXTOOLS.DLL) FORCEPATH(<ExpC1>, <ExpC2>) Returns: Character Description: Returns <ExpC1> with its path changed to <ExpC2> <ExpC1> - File Name (With or without a path) <ExpC2> - Path Example: ? FORCEPATH("C:\DOS\SETVER.EXE", "C:\FOXPROW") (returns: C:\FOXPROW\SETVER.EXE) FOXTOOLVER() Returns: Character Description: Returns the version number of the FOXTOOLS.FLL library Example: ? FOXTOOLVER() JUSTDRIVE() Returns: Character Description: Returns the drive letter from a complete path. Example: ? JUSTDRIVE("C:\FOXPROW\FOXPROW.EXE") (returns: C:) JUSTEXT() Returns: Character Description: Returns the three letter extension from a complete path. Example: ? JUSTEXT("C:\FOXPROW\FOXPROW.EXE") (returns: EXE) JUSTFNAME(<ExpC>) Returns: Character Description: Returns the file name from a complete path. Example: ? JUSTFNAME("C:\FOXPROW\FOXPROW.EXE") (returns: FOXPROW.EXE) JUSTPATH(<ExpC>) Returns: Character Description: Returns the pathname from a complete path. Example: ? JUSTPATH("C:\FOXPROW\FOXPROW.EXE") (returns: C:\FOXPROW) JUSTSTEM(<ExpC>) Returns: Character Description: Returns the stem name (first eight characters of file name) from a complete path. Example: ? JUSTSTEM("C:\FOXPROW\FOXTOOLS.FLL") (returns: FOXTOOLS) MAINHWND() Returns: Numeric Description: Returns a Windows handle (HWND) to the main FoxPro window Example: ? MAINHWND() MKDIR(<ExpC>) Returns: Numeric Description: Creates a directory specified by <ExpC>. This function will not check for valid length and format of directory string. . The return value is 0 for successful, 1 for not-successful and 6 for "directory already exists". This function is only available in FoxTools version 1.01 or later. Example: ? MKDIR("C:\TEST") (returns: 0 - Creates directory C:\TEST) ? MKDIR("C:\THISISTOOLONG") (returns: 0 - Creates directory C:\THISISTO) ? MKDIR("C:\THIS IS WRONG") (returns: 0 - Creates directory C:\THIS IS - NOTE THE INVALID SPACE IS ALLOWED!) ? MKDIR("C:\ THISIS WRONG") (returns: 1 - Invalid beginning space for directory name) MSGBOX(<ExpC1>, <ExpC2>, <ExpN>) Returns: Numeric One Of The Following: idok 1 idcancel 2 idabort 3 idretry 4 idignore 5 idyes 6 idno 7 Description: Displays a modal dialog box centered in Windows. <ExpC1> - Contents in dialog box <ExpC2> - Title of dialog box window <ExpN> - Type of dialog box as follows: MB_OK 0 MB_OKCANCEL 1 MB_ABORTRETRYIGNORE 2 MB_YESNOCANCEL 3 MB_YESNO 4 MB_RETRYCANCEL 5 MB_ICONHAND 16 MB_ICONQUESTION 32 MB_ICONEXCLAMATION 48 MB_ICONASTERISK 64 MB_ICONINFORMATION MB_ICONASTERISK MB_ICONSTOP MB_ICONHAND Example: test = MSGBOX("This is the contents of the window." ; "This is the title", ; MB_ICONQUESTION+MB_YESNO) (This example assumes your program contains #define statements to associate MB_ICONQUESTION and MB_YESNO with their appropriate values shown above). NEXTWORD(<ExpC1>, <ExpN>[,<ExpC2>]) Returns: Character Description: Returns the next word in <ExpC1> beginning at character <ExpN> and ending just before any character in optional <ExpC2> or the end of the <ExpC1> string. Default for <ExpC2> is space, tab and carriage return. Example: ? NEXTWORD("This is a test of FoxTools", 12) (returns: est) ? NEXTWORD("One,Two,Three,Four,Five", 12,",") (returns: ee) REDUCE(<ExpC1>, <ExpC2>) Returns: Character Description: Removes repetitive values in a string. Usually used to remove groups of spaces in a string and replace it with one space. <ExpC1> - Character string to change <ExpC2> - Characters to search for Example: ? REDUCE("This is lots of spaces", " ") (returns: This is lots of spaces) ? REDUCE("Repeat characters AAAA and delete", "A") (returns: Repe t ch r cters nd delete) RMDIR(<ExpC>) Returns: Numeric Description: Deletes a directory specified by <ExpC>. Does not check for valid directory name. (See Example). Returns 0 if successful and 1 if not- successful. This function is only available in FoxTools version 1.01 or later. Example: ? RMDIR("C:\THIS IS WRONG") (returns: 0 - If directory was removed) STRFILTER(<ExpC1>, <ExpC2>) Returns: Character Description: Returns only characters specified in <ExpC2>. This function is case sensitive. <ExpC1> - Character string to search <ExpC2> - Characters to search for Example: ? STRFILTER("This is FoxTools", "T") (returns: TT) VALIDPATH(<ExpC1>) Returns: Logical Description: Checks for a valid DOS filename and/or path syntax. This function is not foolproof and can sometimes think a file has a valid name when it doesn't. However, it will not reject as invalid a valid name. NOTE: Does not check to see if it exists Example: ? VALIDPATH("C:\FOO") (returns: .T.) ? VALIDPATH("C:\THISISVERYLONG") (returns: .F.) WORDNUM(<ExpC1>, <ExpN>[,<ExpC2>]) Returns: Character Description: Returns the <ExpN> word in <ExpC> delimited by any character in optional <ExpC2>. The default for <ExpC2> is a space, tab and carriage return. Example: ? WORDNUM("This is a test of FoxTools", 4) (returns: test) ? WORDNUM("One,Two:Three,Four,Five", 4, ":,") (returns: Four) WORDS(<ExpC1>[,<ExpC2>]) Returns: Numeric Description: Returns the number of words in <ExpC> delimited by any character in optional <ExpC2>. The default for <ExpC2> is a space, tab and carriage return. Example: ? WORDS("This is a test of FoxTools") (returns: 6)
La versión 2.5 de FoxPro se suministró con una biblioteca externa de funciones en FoxTools.Fll. Muchas de estas funciones, como JustStem() y otras funciones para manipular nombres de archivos, se han promovido al lenguaje en sí, pero la biblioteca FoxTools todavía tiene algunas funciones extrañas que son útiles en Visual FoxPro. [3]
FoxTouch
Esto es similar al comando táctil de Unix, ya que le permite modificar la marca de tiempo de un archivo. Esto, por ejemplo, establecerá la marca de tiempo en 12:30 el día de Navidad:
SET LIBRARY TO HOME() + "foxtools.fll"
?FOXTOUCH("test.xls", 2010, 12, 25, 12, 30, 0)Si escribe este ejemplo en FoxPro, verá que VFP Intellisense no reconoce las funciones de Fll. El texto permanece en negro y Fox no le brinda ayuda sobre qué parámetros se esperan.
Los parámetros aquí son el nombre del archivo seguido de año, mes, día, hora, minuto y segundos de la marca de tiempo. Los componentes de la hora y la fecha deben estar en los rangos apropiados, pero aún puede obtener algunos efectos extraños. Cualquier fecha anterior al 1 de enero de 1601 será rechazada con un error 0 "El valor, tipo o conteo del argumento de la función no es válido". Se aceptará cualquier fecha entre 1601 y el 1 de enero de 1980, pero la función Adir dará una fecha en blanco y un momento extraño.
Reduce
Esta función reduce el número de espacios en una expresión de caracteres que puede ser útil en dos situaciones.
Eliminar espacios duplicados
Si los usuarios han estado ingresando datos en un formulario con una fuente proporcional, entonces es difícil para ellos ver si han ingresado un espacio simple o doble. La función Reduce con un solo parámetro reemplazará todos los espacios múltiples dentro de una cadena con un solo espacio. Tomando el campo Compañía de la base de datos Northwind como ejemplo:
SET LIBRARY TO HOME() + "foxtools.fll"
Replace All company With Reduce(company)
Eliminar saltos de línea y pestañas
Si ha utilizado la función FileToStr para extraer texto de un archivo en una variable de cadena, entonces es posible que desee limpiar esa cadena eliminando saltos de línea y pestañas. Si agrega el segundo parámetro opcional a la función Reduce, convertirá cada aparición de ese carácter en un espacio. Como un simple ejemplo:
SET LIBRARY TO HOME() + "foxtools.fll"
?Reduce("test", "e")dará "t st" como resultado.
Para limpiar la cadena, necesita eliminar pestañas, retornos de carro y saltos de línea, y podría pensar que debería llamar a Reduce tres veces para eliminar Chr (9), Chr (10) y Chr (13). Una característica inusual de Reduce nos permite hacer esto en una sola llamada. Si el segundo parámetro consta de varios caracteres (por ejemplo, 'xyz'), puede esperar que busque ocurrencias de 'xyz' en la cadena de destino. Lo que realmente hace es procesar 'x' e 'y' y 'z' por separado para que podamos eliminar los tres caracteres de control en una sola pasada:
SET LIBRARY TO HOME() + "foxtools.fll"
lcFile = FileToStr("myFile.txt")
lcTemp = Reduce(lcFile, Chr(9)+Chr(10)+Chr(13))
lcClean = Reduce(lcTemp)En este ejemplo, el primer paso elimina los tres caracteres de control, pero esto podría dejarnos con múltiples espacios si hubiera pestañas o espacios al comienzo de una línea. Una segunda llamada a Reduce con un solo parámetro los limpia.
ValidPath
Esta es una función simple que verificará si una cadena puede ser una ruta válida. A pesar de su antigüedad, aceptará caminos que incluyen espacios. Estos ejemplos serán aceptados como válidos:
SET LIBRARY TO HOME() + "foxtools.fll"
?ValidPath("D:\Database Archive")
?ValidPath("\\myServer\Shared\")Estos ejemplos no serán aceptados:
SET LIBRARY TO HOME() + "foxtools.fll"
?ValidPath("D:\Database Archive")
?ValidPath("\\myServer\*\")La función no es infalible, pero es una primera etapa de validación rápida y fácil.
Advertencias
La biblioteca FoxTools se incluye para compatibilidad con versiones anteriores y ninguna de las funciones es compatible con Microsoft. Puede encontrar ayuda en el archivo de Ayuda (FoxTools.chm), pero generalmente se necesitará un poco de experimentación.
Funciones del portapapeles de Windows
Estas funciones se asignan a las funciones del SDK de Windows que tienen nombres similares. ¡Recomendamos encarecidamente que no los use a menos que sepa exactamente lo que está haciendo! La variable de sistema FoxPro _CLIPTEXT es la forma recomendada de acceder a la ventana [2]
CLOSECLIP() Returns: Logical Description: Closes the clipboard opened previously with OPENCLIP. Returns .T. if successful. Example: ? CLOSECLIP() (returns: .T.) COUNTCLIPF() Returns: Numeric Description: The COUNTCLIP function retrieves the number of different data formats currently in the clipboard. Example: ? COUNTCLIP() (returns: 0) EMPTYCLIP() Returns: Logical Description: The EMPTYCLIP function empties the clipboard and frees handles to data in the clipboard. It then assigns ownership of the clipboard to the window that currently has the clipboard open. Example: ? EMPTYCLIP() (returns: .F.) ENUMCLIPFM(<ExpN>) Returns: Numeric Description: The ENUMCLIPFM function enumerates the formats found in a list of available formats that belong to the clipboard. Each call to this function specifies a known available format; the function returns the format that appears next in the list. GETCLIPDAT(<ExpN>) Returns: Logical Description: Unknown function... best explanation as follows: The GetClipDat function retrieves a handle of the current clipboard data having a specified format in <ExpN>. <ExpN> contains the following defines: cf_Text = 1 cf_Bitmap = 2 cf_MetaFilePict = 3 cf_SYLK = 4 cf_DIF = 5 cf_TIFF = 6 cf_OEMText = 7 cf_DIB = 8 cf_Palette = 9 GETCLIPFMT(<ExpN>) Returns: Unknown (Character?) Description: Unknown function... best explanation as follows: The GetClipFmt function retrieves the name of a registered clipboard format. ISCLIPFMT(<ExpN>) Returns: Logical Description: Returns the format of the available contents of the clipboard. <ExpN> is as follows: cf_Text = 1 cf_Bitmap = 2 cf_MetaFilePict = 3 cf_SYLK = 4 cf_DIF = 5 cf_TIFF = 6 cf_OEMText = 7 cf_DIB = 8 cf_Palette = 9 Example: Copy text to clipboard ? ISCLIPFMT(cf_Text) (returns: .T.) OPENCLIP(<ExpN>) Returns: Logical Description: The OPENCLIP function opens the clipboard. Other applications will not be able to modify the clipboard until the CLOSECLIP function is called. <ExpN> is the handle of the window ... 0 is acceptable <<< ALMOST ALL CLIP FUNCTIONS RELY ON OPENING THE CLIPBOARD PRIOR TO USE >>> Example: ? OPENCLIP(0) (returns: .T.) REGCLIPFMT(<ExpC>) Returns: Numeric The return value indicates the newly registered format. If the identical format name has been registered before, even by a different application, the format's reference count is incremented (increased by one) and the same value is returned as when the format was originally registered. The return value is zero if the format cannot be registered. Description: The REGCLIPFMT function registers a new clipboard format. The registered format can be used in subsequent clipboard functions as a valid format in which to render data, and it will appear in the clipboard's list of formats. <ExpC> is a string that names the new format. Example: ? REGCLIPFMT("MyRegClip") SETCLIPDAT(<ExpN>, <ExpC>) Returns: Logical Description: The SETCLIPDAT function sets the data in the clipboard. Example: ? SETCLIPDAT(1, "Test") (returns: .T.)
Un grupo de funciones que comienzan con _Ed ... y _W ... se asignan a las funciones de editor y ventana que se describen en el Kit de construcción de biblioteca FoxPro 2.5 (un producto separado que le permite extender FoxPro usando el lenguaje de programación C). Consulte la documentación de ese producto para obtener detalles sobre estas funciones. [2]
AddBS( )
Agrega una barra invertida (si es necesario) a una expresión de ruta de acceso. También está disponible como una función nativa de Visual FoxPro.
Sintaxis
AddBS(cRuta)
cRuta
Especifica el nombre de la ruta de acceso a la que debe agregar la barra invertida.
Tipo devuelto
Character
CallFn( )
Llama a una función registrada y devuelve el valor que ha devuelto la función, con el tipo declarado por ReturnType en la llamada RegFn.
Sintaxis
CallFN(nControladorFunción, Arg1[, Arg2[, ...]])
nControladorFunción
El controlador de función de una llamada previa a RegFn( ) o RegFn32( ).
Arg1, Arg2, ....
Argumentos requeridos por la función a la que hace referencia FnNum. Debe pasar los argumentos como se declararon cuando se registró la función o se producirá un error.
Todos los argumentos deben coincidir con su tipo declarado:
- F, D – debe ser un número de coma flotante.
- I, L – debe ser un número entero.
- C – debe ser una cadena pasada por valor o 0 (cero). Si es 0, se pasa un puntero nulo.
Tipos devueltos
Definidos por el usuario en RegFn( ) o RegFn32( ).
CleanPath( )
Devuelve un nombre de archivo corregido (mejor aproximación) para un nombre de archivo no válido y quita espacios, caracteres no válidos, barras invertidas duplicadas, etcétera.
Sintaxis
CleanPath(cNombreArchivo)
cNombreArchivo
Especifica el nombre de archivo que hay que limpiar.
Tipos devueltos
Character
CloseClip( )
Cierra el Portapapeles abierto previamente con OpenClip( ).
Sintaxis
CloseClip( )
Tipo devuelto
Logical
Comentarios
El valor devuelto informa del éxito (.T.) o fallo (.F.) del comando. Casi todas las funciones Clip se basan en abrir el Portapapeles antes de usar la función. Puede usar _CLIPTEXT para tener acceso al contenido del Portapapeles de Windows.
Nota Esta función se corresponde con la función del SDK de Windows con nombre similar. Para obtener más información, consulte la documentación del SDK de Windows.
CountClipF( )
Obtiene el número de distintos formatos de datos que hay actualmente en el Portapapeles de Windows.
Sintaxis
CountClipF( )
Tipo devuelto
Numeric
Comentarios
Casi todas las funciones Clip se basan en abrir el Portapapeles antes de usar la función. Puede usar _CLIPTEXT para tener acceso al contenido del Portapapeles de Windows.
Nota Esta función se corresponde con la función del SDK de Windows con nombre similar. Para obtener más información, consulte la documentación del SDK de Windows.
DefaultExt( )
Devuelve un nombre de archivo con una extensión nueva si no existe ya uno. También está disponible como una función nativa de Visual FoxPro.
Sintaxis
DefaultExt(cNombreArchivo, cPredeterminado)
cNombreArchivo
Especifica el nombre de archivo (con o sin ruta de acceso o extensión) que hay que devolver.
cPredeterminado
Especifica la extensión predeterminada sin punto.
Tipo devuelto
Character
DriveType( )
Devuelve el tipo de la unidad especificada. También está disponible como una función nativa de Visual FoxPro.
Sintaxis
DriveType(cUnidad)
cUnidad
Designa la unidad. Los dos puntos de nombres de unidad (por ejemplo, "C:") son opcionales.
Tipos devueltos
Numeric
Comentarios
La tabla siguiente explica el número que DriveType( ) devuelve y la correspondiente descripción de tipo de unidad.
Número
Tipo de unidad
0
Sin tipo
2
Disquete
3
Disco duro
4
Disco extraíble o unidad de red
5
CD-ROM
6
Disco RAM(1)
(1) Como hay muchos tipos diferentes de discos RAM, puede que obtenga resultados devueltos incoherentes.
EmptyClip( )
Vacía el Portapapeles y libera controladores de datos en el Portapapeles. Después asigna la propiedad del Portapapeles a la ventana en la que está abierto el Portapapeles.
Sintaxis
EmptyClip( )
Tipo devuelto
Logical
Comentarios
Casi todas las funciones Clip se basan en abrir el Portapapeles antes de usar la función. Puede usar _CLIPTEXT para tener acceso al Portapapeles de Windows.
Nota Esta función se corresponde con la función del SDK de Windows con nombre similare. Para obtener más información, consulte la documentación del SDK de Windows.
EnumClipFm( )
Enumera los formatos encontrados en una lista de formatos disponibles que pertenecen al Portapapeles.
Sintaxis
EnumClipFm(nFormato)
nFormato
Especifica un formato de Portapapeles.
Para determinar los formatos de portapapeles disponibles, establezca nFormato a 0; EnumClipFm( ) devolverá el primer formato de Portapapeles disponible. Para llamadas sucesivas a EnumClipFm( ), establezca nFormato al valor devuelto por la llamada anterior a EnumClipFm( ).
Tipo devuelto
Numeric
Comentarios
Cada llamada a EnumClipFm( ) especifica un formato disponible conocido; la función devuelve el siguiente formato de la lista.
Casi todas las funciones Clip se basan en abrir el Portapapeles antes de usar la función. Puede usar _CLIPTEXT para tener acceso al Portapapeles de Windows.
Nota Esta función se corresponde con la función del SDK de Windows que tiene un nombre similar. Para obtener más información, consulte la documentación del SDK de Windows.
ForceExt( )
Devuelve una cadena con la extensión de nombre de archivo antigua reemplazada por una extensión nueva. También está disponible como una función nativa de Visual FoxPro.
Sintaxis
ForceExt(cNombreArchivo, cExtensión)
cNombreArchivo
Especifica el nombre de archivo (con o sin una ruta o extensión) que obtendrá una nueva extensión.
cExtensión
Especifica la nueva extensión (sin punto) para cNombreArchivo.
Tipo devuelto
Character
ForcePath( )
Devuelve un nombre de archivo con un nombre de ruta de acceso nuevo sustituido por el antiguo. También está disponible como una función nativa de Visual FoxPro.
Sintaxis
ForceExt(cNombreArchivo, cRuta)
cNombreArchivo
Especifica el nombre de archivo (con o sin una ruta o extensión) que obtendrá una ruta nueva.
cRuta
Especifica la nueva ruta para cNombreArchivo.
Tipo devuelto
Character
FoxToolVer( )
Devuelve el número de versión de la biblioteca Foxtools.
Sintaxis
FoxToolVer( )
Tipo devuelto
Character
GetClipDat( )
Devuelve un controlador para los datos del Portapapeles de un formato especificado y lo pasa directamente a la aplicación que llama.
Sintaxis
GetClipDat(nFormato)
nFormato
Contiene un identificador para posibles formatos del Portapapeles.
nFormato
Descripción (tipo)
1
cf_Text
2
cf_Bitmap
3
cf_MetaFilePict
4
cf_SYLK
5
cf_DIF
6
cf_TIFF
7
cf_OEMText
8
cf_DIB
9
cf_Palette
Tipo devuelto
Logical
Comentarios
El Portapapeles controla el controlador, no la aplicación. La aplicación debe copiar los datos inmediatamente. Casi todas las funciones Clip se basan en abrir el Portapapeles antes de usar la función. Puede usar _CLIPTEXT para tener acceso al Portapapeles de Windows.
Nota Esta función se corresponde con la función del SDK de Windows que tiene un nombre similar. Para obtener más información, consulte la documentación del SDK de Windows.
GetClipFmt( )
Obtiene el nombre de un formato de Portapapeles registrado.
Sintaxis
GetClipFmt(nFormato)
nFormato
Especifica el formato registrado que hay que obtener. Este argumento no debe especificar ninguno de los formatos de portapapeles predefinidos.
Tipo devuelto
Numeric
Comentarios
Casi todas las funciones Clip se basan en abrir el Portapapeles antes de usar la función. Puede usar _CLIPTEXT para tener acceso al Portapapeles de Windows.
Nota Esta función se corresponde con la función del SDK de Windows que tiene un nombre similar. Para obtener más información, consulte la documentación del SDK de Windows
GetFileVersion( )
Devuelve información sobre un archivo. También está disponible como la función nativa AGETFILEVERSION( ) de Visual FoxPro.
Sintaxis
GetFileVersion(cNombreArchivo, @NombreMatriz)
cNombreArchivo
Especifica el nombre del archivo para el que se devuelve información.
NombreMatriz
Especifica el nombre de la matriz en la que se coloca la información de archivo. Se debe crear la matriz antes de ejecutar GetFileVersion( ) y ésta debe contener por lo menos 1 columna y 12 filas.
Tipo devuelto
Numeric
Comentarios
GetFileVersion( ) se usa normalmente para obtener información sobre archivos .exe y .dll.
Si la función tiene éxito devuelve cero; si no, devuelve –1.
La tabla siguiente muestra la información de archivo contenida en los doce elementos de matriz:
Número de elemento
Información de archivo
1
Comentarios
2
Nombre de compañía
3
Descripción de archivo
4
Versión de archivo
5
Nombre interno
6
Copyright legal
7
Marcas comerciales legales
8
Nombre de archivo original
9
Build privado
10
Nombre de producto
11
Versión de producto
12
Build especial
GetProStrg( )
Obtiene la cadena asociada a una entrada en la sección especificada del archivo de inicialización Win.ini.
Sintaxis
GetProStrg (lpszSección, lpszEntrada, lpszPredeterminado,
@lpszBúferDevolución, cbBúferDevolución)lpszSección
Apunta a una cadena terminada en valor nulo que especifica la sección que contiene la entrada.
LpszEntrada
Apunta a la cadena terminada en valor nulo que contiene la entrada cuya cadena asociada hay que obtener. Si este valor es NULL, todas las entradas de la sección especificadas por el argumento lpszSección se copian en el búfer especificado por el argumento lpszBúferDevolución.
LpszPredeterminado
Puntero al valor predeterminado para la entrada dada si ésta no se puede encontrar en el archivo de inicialización. Este argumento nunca debe ser NULL; debe apuntar a una cadena válida, incluso si la cadena está vacía (si el primer carácter es cero).
LpszBúferDevolución
Puntero que recibirá la cadena de caracteres.
cbBúferDevolución
Especifica el tamaño en bytes del búfer al que apunta el argumento lpszBúferDevolución.
Valor devuelto
Numeric
Comentarios
Una aplicación puede usar la función GetProStrg( ) para obtener una cadena de un archivo especificado.
Si el argumento lpszEntrada es NULL, la función GetProStrg( ) copia todas las entradas de la sección especificada en el búfer suministrado. Cada cadena terminará en valor nulo y la cadena final termina con dos valores nulos. Si el búfer de destino es demasiado pequeño para contener todas las cadenas, la última cadena se truncará y terminará en dos caracteres nulos.
Si la cadena asociada a lpszEntrada está escrita entre comillas o comillas dobles, las marcas se descartan cuando GetProStrg devuelve la cadena.
GetProStrg( ) no distingue entre mayúsculas y minúsculas, de forma que las cadenas de los argumentos lpszSección y lpszEntrada pueden contener una combinación de letras mayúsculas y minúsculas.
El valor devuelto es el número de bytes copiados al búfer, sin incluir el cero final, si la función tiene éxito.
IsClipFmt( )
Indica si actualmente hay datos del formato especificado en el Portapapeles.
Sintaxis
IsClipFmt(nFormato)
nFormato
Contiene un valor numérico que indica el formato de los datos disponibles.
La tabla siguiente representa los formato predefinidos de Windows:
nFormato
Descripción (tipo)
1
cf_Text
2
cf_Bitmap
3
cf_MetaFilePict
4
cf_SYLK
5
cf_DIF
6
cf_TIFF
7
cf_OEMText
8
cf_DIB
9
cf_Palette
Tipo devuelto
Logical
Comentarios
IsClipFmt( ) devuelve verdadero (.T.) si los datos del fomato especificado están en el Portapapeles o falso (.F.) en caso contrario.
Nota Esta función se corresponde con la función del SDK de Windows con nombre similar. Para obtener más información, consulte la documentación del SDK de Windows.
JustDrive( )
Devuelve la letra de unidad de una ruta completa. También está disponible como función nativa de Visual FoxPro.
Sintaxis
JustDrive(cRuta)
cRuta
Especifica el nombre de ruta completo del que sólo quiere la unidad.
Tipo devuelto
Character
JustExt( )
Devuelve la extensión de tres letras de una ruta de acceso completa. También está disponible como función nativa de Visual FoxPro.
Sintaxis
JustExt(cRuta)
cRuta
Especifica el nombre, que puede incluir la ruta de acceso completa, del archivo del que sólo quiere la extensión.
Tipo devuelto
Character
JustFName( )
Devuelve la parte del nombre de archivo de una ruta de acceso completa y un nombre de archivo. También está disponible como función nativa de Visual FoxPro.
Sintaxis
JustFName(cNombreArchivo)
cNombreArchivo
Especifica el nombre, que puede incluir la ruta de acceso completa, del archivo del que sólo quiere el nombre de archivo.
Tipo devuelto
Character
JustPath( )
Devuelve la parte de la ruta de acceso de una ruta de acceso completa y un nombre de archivo. También está disponible como función nativa de Visual FoxPro.
Sintaxis
JustPath(cNombreArchivo)
cNombreArchivo
Especifica el nombre completo (incluyendo la ruta de acceso) del archivo del que sólo quiere la ruta.
Tipo devuelto
Character
JustStem( )
Devuelve el nombre (primeros ocho caracteres del nombre de archivo) de una ruta de acceso completa y un nombre de archivo. También está disponible como función nativa de Visual FoxPro.
Sintaxis
JustStem(cNombreArchivo)
cNombreArchivo
Especifica el nombre (incluyendo la ruta de acceso) del archivo del que sólo quiere el nombre.
Tipo devuelto
Character
MainHwnd( )
Devuelve el controlador de ventana (HWND) de la ventana principal de Visual FoxPro.
Sintaxis
MainHwnd( )
Tipo devuelto
Numeric
MkDir( )
Crea un directorio.
Sintaxis
MkDir(cRuta)
cRuta
Especifica la ruta que se va a crear.
Tipo devuelto
Numeric
Comentarios
Esta función no comprobará la validez de la longitud y el formato de una cadena de directorio. Los valores devueltos son los siguientes:
0
éxito
1
fallo
6
el directorio ya existe
Esta función sólo está disponible en Foxtools versión 1.01 o posterior.
MessageBox( )
Muestra un cuadro de diálogo modal centrado en la pantalla.
Sintaxis
MessageBox(cTexto, cTítulo, nTipo)
cTexto
Especifica el contenido del cuadro de diálogo.
cTítulo
Especifica el título de la ventana del cuadro de diálogo.
nTipo
Especifica el tipo del cuadro de diálogo:
nTipo
Tipo
0
MB_OK
1
MB_OKCANCEL
2
MB_ABORTRETRYIGNORE
3
MB_YESNOCANCEL
4
MB_YESNO
5
MB_RETRYCANCEL
16
MB_ICONSTOP
32
MB_ICONQUESTION
48
MB_ICONEXCLAMATION
64
MB_ICONINFORMATION
Tipo devuelto
Numeric
Comentarios
MessageBox( ) devuelve un valor que indica el botón en el que el usuario ha hecho clic.
Valor devuelto
Id del botón en el que se ha hecho clic
1
idok
2
idcancel
3
idabort
4
idretry
5
idignore
6
idyes
7
idno
NextWord( )
Devuelve los caracteres entre un índice de caracteres especificado y el siguiente delimitador de palabras (o el final de la cadena).
Sintaxis
NextWord(cCadena, nPosición[, cDelimitador])
cCadena
Especifica la cadena que hay que buscar.
nPosición
Especifica la posición numérica del carácter en la cadena que será el carácter inicial devuelto por NextWord( ).
cDelimitador
Especifica los delimitadores de palabras opcionales; NextWord( ) devuelve la cadena de caracteres entre nPosición y este carácter. Si cDelimitador2 no se usa, los delimitadores predeterminados son espacios, tabulaciones y caracteres de retorno de carro (ASCII 13). El carácter delimitador no se incluye en la cadena devuelta.
Tipo devuelto
Character
OpenClip( )
Abre el Portapapeles para que funciones relacionadas con el Portapapeles tengan acceso.
Sintaxis
OpenClip(nControlador)
nControlador
Especifica el controlador de la ventana asociada al Portapapeles. Cero es aceptable. Para obtener el controlador de la ventana principal de Visual FoxPro, llame a MainHwnd( ).
Tipo devuelto
Logical
Comentarios
Casi todas las funciones Clip se basan en abrir el Portapapeles antes de usar la función. Puede usar _CLIPTEXT para tener acceso al Portapapeles de Windows.
Nota Esta función se corresponde con la función del SDK de Windows que tiene un nombre similar. Para obtener más información, consulte la documentación del SDK de Windows.
PutProStrg( )
Copia una cadena en la sección especificada del archivo de inicialización de Windows (Win.ini).
Sintaxis
PutProsStrg(lpszSección, lpszEntrada, lpszCadena)
lpszSección
Puntero a una cadena terminada en valor nulo que especifica la sección a la que se copia la cadena. Si la sección no existe, se crea. El nombre de la sección no distingue mayúsculas de minúsculas; la cadena puede ser cualquier combinación de mayúsculas y minúsculas.
lpszEntrada
Puntero a la cadena terminada en valor nulo que contiene la entrada que se va a asociar a la cadena. Si la entrada no existe en la sección especificada, se crea. Si el argumento es NULL, se elimina toda la sección y todas las entradas que contiene.
lpszCadena
Puntero a la cadena terminada en valor nulo que se va a escribir en el archivo. Si este argumento es NULL, la entrada especificada por el argumento lpszEntrada se elimina.
Tipo devuelto
Numeric
Comentarios
El valor devuelto es distinto de cero si la función tiene éxito; si no es así, vale cero.
Reduce( )
Reemplaza los caracteres especificados en una cadena por un espacio.
Sintaxis
Reduce(cBuscar, cReemplazar)
cBuscar
Especifica la cadena de caracteres que se va a cambiar.
cReemplazar
Especifica los caracteres que se van a buscar y reemplazar por un espacio. Si especifica más de un carácter, los caracteres se tratan por separado durante la reducción y no como una sola cadena multicaracter.
Tipo devuelto
Character
Comentarios
Reemplaza los caracteres especificados en cReemplazar por un espacio, a continuación quita los espacios iniciales y los espacios repetidos de la cadena. Esta función se usa normalmente para reemplazar un grupo de espacios en una cadena con un único espacio o para reemplazar delimitadores tales como tabuladores o marcas de párrafo con un espacio.
RegClipFmt( )
Registra un nuevo formato de Portapapeles.
Sintaxis
RegClipFmt(cFormato)
cFormato
Especifica una cadena que da nombre al nuevo formato.
Tipo devuelto
Numeric
Comentarios
El formato registrado se puede usar en funciones subsiguientes de portapapeles como un formato válido para proporcionar datos que aparecerá en la lista de formatos del Portapapeles.
El valor devuelto indica el formato recién registrado. Si se ha registrado anteriormente un nombre de formato idéntico, incluso por parte de una aplicación diferente, se incrementa la cuenta de referencia del formato (en una unidad) y se devuelve el mismo valor que cuando se registró originalmente el formato. El valor devuelto es cero si el formato no se puede registrar.
Casi todas las funciones Clip se basan en abrir el Portapapeles antes de usar la función. Puede usar _CLIPTEXT para tener acceso al Portapapeles de Windows.
Nota Esta función se corresponde con la función del SDK de Windows que tiene un nombre similar. Para obtener más información, consulte la documentación del SDK de Windows.
RGBComp( )
Devuelve los componentes rojo, verde y azul de un valor de color RGB compuesto.
Sintaxis
RGBComp( nColorRGB, @nValRojo, @nValVerde, @nValAzul )
nColorRGB
Especifica un valor de color RGB compuesto entre 0 y 16777215.
@nValRojo
Especifica una referencia a una variable en la que la función devuelve la intensidad del componente de color rojo de nColorRGB.
@nValVerde
Especifica una referencia a una variable en la que la función devuelve la intensidad de la componente de color verde de nColorRGB.
@nValAzul
Especifica una referencia a una variable en la que la función devuelve la intensidad del componente de color azul de nColorRGB.
Tipo devuelto
Logical
RmDir( )
Elimina un directorio.
Sintaxis
RmDir(cRuta)
cRuta
Especifica la ruta del directorio o carpeta que hay que quitar.
Tipo devuelto
Numeric
Comentarios
Esta función sólo está disponible en Foxtools versión 1.01 o posterior.
Devuelve 0 si tiene éxito y 1 si no tiene éxito.
SetClipDat( )
Establece los datos en el Portapapeles abierto.
Sintaxis
SetClipDat(nFormato, cDatos)
nFormato
Especifica un identificador para posibles formatos de Portapapeles.
nFormato
Descripción (tipo)
1
cf_Text
2
cf_Bitmap
3
cf_MetaFilePict
4
cf_SYLK
5
cf_DIF
6
cf_TIFF
7
cf_OEMText
8
cf_DIB
9
cf_Palette
cDatos
Especifica los datos que se van a colocar en el Portapapeles.
Tipo devuelto
Logical
Comentarios
Debe abrir el Portapapeles con OpenClip( ) antes de llamar a esta función. Si el Portapapeles de Windows está en ejecución no actualizará su ventana para mostrar los datos colocados en el Portapapeles por la función SetClipDat( ) hasta que se llame a la función CloseClip( ).
Nota Esta función se corresponde con la función del SDK de Windows que tiene un nombre similar. Para obtener más información, consulte la documentación del SDK de Windows.
StrFilter( )
Quita todos los caracteres de una cadena excepto los especificados.
Sintaxis
StrFilter(cCadena, cBúsqueda)
cCadena
Especifica la cadena de caracteres que se va a buscar.
cBúsqueda
Especifica los caracteres que se buscan y conservan en cCadena.
Tipo devuelto
Character
Comentarios
StrFilter( ) quita todos los caracteres de cCadena que no están en cBúsqueda y, a continuación, devuelve los caracteres restantes. StrFilter( ) distingue mayúsculas de minúsculas.
ValidPath( )
Comprueba un nombre de archivo de MS-DOS válido o una expresión de ruta.
Sintaxis
ValidPath(cNombre)
cNombre
Especifica la ruta o el nombre de archivo que hay que comprobar.
Tipo devuelto
Logical
Comentarios
ValidPath( ) comprueba que un nombre de archivo o un nombre de ruta de acceso es sintácticamente válido; no comprueba la existencia del archivo o la ruta especificados. La función no es infalible y, a veces, puede interpretar que un archivo tiene un nombre válido cuando en realidad no lo es. Sin embargo, ValidPath( ) no rechazará un nombre válido.
No es compatible con sistemas de archivos que admitan espacios en nombres de ruta.
WordNum( )
Devuelve la palabra especificada en una cadena.
Sintaxis
WordNum(cCadena, nÍndice[, cDelimitador])
cCadena
Especifica la cadena que contiene la palabra que se va a devolver.
nÍndice
Especifica la posición del índice de la palabra que se va a devolver. Por ejemplo, si nÍndice es 3, WordNum( ) devuelve la tercera palabra (si cCadena contiene tres o más palabras).
cDelimitador
Especifica el carácter utilizado para delimitar palabras en cCadena. Los delimitadores predeterminados son espacio, tabulación y retorno de carro.
Tipo devuelto
Character
Comentarios
Si cCadena contiene menos palabras que el número especificado en cÍndice, WordNum( ) devuelve una cadena vacía.
Words( )
Cuenta el número de palabras de una cadena.
Sintaxis
Words(cCadena[, cDelimitador])
cCadena
Especifica la cadena de palabras que hay que contar.
cDelimitador
Especifica el carácter que se va a usar para delimitar palabras en cCadena. Los delimitadores predeterminados son el espacio y la tabulación.
Tipo devuelto
Numeric
- Introducción a Foxtools (Foxtools.fll) --> Usted está aquí.
- Introducción (I)
- Funciones para ficheros .INI (II)
- Funciones para ficheros .INI (III)
- Introducción a las Ventanas (IV)
- Introducción a las Ventanas (V)
- Manejo del Registro (y VI)
- FoxTools-FLL en GitHub - Documentación y ayuda en inglés - Enlace externo
- Foxtools.chm --> Busque esta ayuda en en el directorio principal de Visual FoxPro
- Foxtools.fll Help File en FoxTools.com
- Unsupported functions in the FoxTools.Fll library - www.alvechurchdata.co.uk
- Camf