Mostrando entradas con la etiqueta vfp9. Mostrar todas las entradas
Mostrando entradas con la etiqueta vfp9. Mostrar todas las entradas

domingo, mayo 31, 2020

Nueva versión v1.19.51.6 de FoxBin2Prg (Bug Fix/Mejoras)

Parte 1: FoxBin2Prg / Parte 2: Extensiones para Plastic


Parte 1: FoxBin2Prg


FoxBin2Prg es un programa pensado para sustituir a SccText/X y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que pueden ser modificadas y permiten recrear el binario original. Puede ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios).


La lista de cambios es la siguiente:

v1.19.51.6

* Bug Fix: Cuando alguna clase generada por la opción class-per-file no termina con CRLF, la re-composición de las clases no es correcta (Ryan Harris)
 

   Cuando se generan las clases con class-per-file (un archivo por cada clase), se agrega un retorno de carro siempre. En el caso de que --por manipulación directa-- sin querer se quite ese CRLF final, causará que al volver a ensamblar los archivos para armar la clase, ese archivo y el siguiente se solapen en una línea, lo que puede provocar errores o que se ignore alguna línea, dependeindo de cómo termine el archivo en cuestión. Con este arreglo se evita esa situación y siempre se agrega un salto de línea al componer las clases desde esos archivos.



* Bug Fix: Incompatible con VFPa (Eric Selje/Richard Kaye)
 

   FoxBin2Prg sólo contemplaba hasta la versión 9 de VFP (la oficial), pero como extraoficialmente se ha continuado el desarrollo mediante el proyecto VFPa y se ha publicado como VFP 10, entonces el control de versión interno rechazaba cualquier versión superior a la 9. Con el arreglo actual, se verifica mejor que la versión mínima sea VFP9-3504 y se admite cualquier versión superior.



* Bug Fix: La conversión de DBFs/Texto falla si algún campo se llama como una palabra reservada, p.ej: UNIQUE (DAJU78)
 

   Cuando se arma una sentencia ALTER TABLE, cualquier nombre de campo que use una palabra reservada puede ser mal interpretado por VFO y por eso la documentación indica no usar palabras reservadas para campos o variables en general. Para evitar este problema en el caso de los campos se puede entrecomillar dicho nombre, forzando a VFP a que entienda que se trata de un nombre de campo y no otra cosa, lo que ha solucionado esta incidencia.


* Bug Fix: Las propiedades de SCX/VCX llamadas "NOTE" no se convierten bien (Tracy Pearson)
 

   NOTE es una palabra reservada y además permite indicar comentarios (compatible con xBase) al igual que el asterisco (*), aunque muy pocos usan o conocen NOTE.  Cuando se ensambla el SCX/VCX, todo lo que esté a la derecha de NOTE se considera un comentario, y en el caso en que se nombre una propiedad con NOTE, no se reconoce como tal. Este arreglo comprueba este caso particular, diferenciando entre el NOTE de comentario y el NOTE= de asignación de propiedad.


* Bug Fix: Manejo de AutoIncrement incompatible con Project Explorer (Dan Lauer) [Fixed by Doug Hennig]
 

   Mejora en el manejo y restitución de AutoIncrement para los campos integer de DBFs, que es compatible con el Project Explorer de Doug Hennig.


 
v1.19.51.4

* Mejora: Issue#32 Make FoxBin2Prg more COM friendly when using ESC key (Tracy Pearson)
 

   Cuando se usa FoxBin2Prg en modo Objeto de Automatización (COM+) no se puede cancelar una vez iniciado el proceso. Con esta modificación se permite cancelar el proceso con Esc.


Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.

Link de descarga de GitHub




Parte 2: Extensiones para Plastic



Las extensiones para Plastic son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg desde dentro de la interfaz de Plastic.


La lista de cambios es la siguiente:

> Actualización de FoxBin2Prg: Versión sincronizada con la última versión de FoxBin2Prg



El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de las Extensiones FoxBin2Prg para Plastic de GitHub



Thank you for your support!



Artículos relacionados:

FoxBin2Prg, el sucesor mejorado del Scctext

FoxBin2Prg: Detalle de vistas, Datos de uso, Configuraciones y más

FoxBin2Prg: Guía rápida de uso y configuración



 Saludos!



martes, julio 31, 2018

Nueva versión v1.19.51.4 de FoxBin2Prg (Bug Fix) y Extensiones para PlasticSCM v2.5.51.4

Parte 1: FoxBin2Prg / Parte 2: Extensiones para Plastic


Parte 1: FoxBin2Prg


FoxBin2Prg es un programa pensado para sustituir a SccText/X y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que pueden ser modificadas y permiten recrear el binario original. Puede ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios).


La lista de cambios es la siguiente:

v1.19.51.4

* Bug Fix: El ordenamiento alfabético de los objetos de los ADD OBJECT puede causar que algunos objetos se creen en el orden erróneo, provocando comportamientos inesperados (Jochen Kauz)
 

   En el issue#28 en GitHub se ha reportado que en un proyecto (outlooknavbar) el ordenamiento alfabético de los objetos provoca que al ensamblar el binario y ejecutar su código algunos objetos no se comporten como se espera, en este caso, dejando siempre colapsado un panel expandible que debería estar expandido. Mantener el orden original de los objetos resuelve este tipo de problemas, por lo que lo considero un arreglo de integridad funcional necesario.

   NOTA: Es importante resaltar que este arreglo seguramente va a provocar varias diferencias en los SC2/VC2, proporcionalmente a la cantidad de objetos que tenga, pero esta diferencia se generará solamente la primera vez.

 
v1.19.51.3

* Bug Fix: "Error 1098, Cannot find ... [ENDT] ... that closes [TEXT]" hay un campo llamado TEXT como primera palabra de la línea (Kirides)
 

   En el issue#26 en GitHub se ha reportado que cuando hay campo llamado TEXT y este se usa como primera palabra en una línea, se identifica incorrectamente como si fuera una estructura TEXT..ENDTEXT

Ejemplo:
SELECT ;
   TEXT ;
   FROM tabla


v1.19.51.2

* Bug Fix: Cuando se exporta un DBF que pertenece a un DBC sin eventos, falla con el mensaje "Error 11, Function argument value, type, or count is invalid" (Jairo Argüelles/Juan C.Perdomo) 
 

   Este caso ocurre porque al consultar el valor de DBCEvents, a veces devuelve vacío en vez de .F., y al comparar vacío con un booleano fallaba.

v1.19.51.1

* Bug Fix: Si se usa capitalización en la información de las vistas, entonces la información relacionada no se exporta correctamente o completamente y puede perderse (SkySurfer1) 
 

   Para todos los componentes de la DBC (vistas, tablas, conexiones, etc) se está pasando el nombre a minúsculas, pero en el caso de las vistas da problemas impidiendo que algunas sean encontradas y exportadas a texto, por lo que se respeta su capitalización original.


Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.

Link de descarga de GitHub




Parte 2: Extensiones para Plastic



Las extensiones para Plastic son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg desde dentro de la interfaz de Plastic.


La lista de cambios es la siguiente:

> Actualización de FoxBin2Prg: Versión sincronizada con la última versión de FoxBin2Prg



El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de las Extensiones FoxBin2Prg para Plastic de GitHub



Thank you for your support!



Artículos relacionados:

FoxBin2Prg, el sucesor mejorado del Scctext

FoxBin2Prg: Detalle de vistas, Datos de uso, Configuraciones y más

FoxBin2Prg: Guía rápida de uso y configuración



 Saludos!



lunes, marzo 26, 2018

Nueva versión v1.19.51 de FoxBin2Prg (mejoras) y Extensiones para PlasticSCM v2.5.51

Parte 1: FoxBin2Prg / Parte 2: Extensiones para Plastic


Parte 1: FoxBin2Prg


FoxBin2Prg es un programa pensado para sustituir a SccText/X y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que pueden ser modificadas y permiten recrear el binario original. Puede ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios).


La lista de cambios es la siguiente:

v1.19.51

* Mejora: Agregado de soporte para archivos de macros (.fky)
 

   Este es uno de los dos tipos de archivos binarios que quedaba por exportar a texto. El soporte es de sólo exportación, y se genera con la extensión FK2.

* Mejora: Agregado de soporte para archivos de memoria (.mem)
 

   Este es uno de los dos tipos de archivos binarios que quedaba por exportar a texto. El soporte es de sólo exportación, y se genera con la extensión ME2.

* Mejora: Agregada detección automática de lenguaje
 

   Hasta ahora la selección del lenguaje de la interfaz y mensajes era manual, mediante el seteo Language del archivo CFG. Ahora, si no está configurada manualmente, es automática según el lenguaje que tenga configurado el usuario. Actualmente el soporte de languajes es para: ES (Español), DE (Alemán), FR (Francés), EN (Inglés).

* Mejora: De la ayuda rápida al hacer doble-click en FoxBin2Prg

   Aunque pocos lo saben, al hacer doble-click en FoxBin2Prg, o al ejecutarlo sin parámetros, se muestra un cuadro de ayuda rápida con las configuraciones soportadas. Se ha mejorado su presentación, se ha hecho escrolable y se ha habilitado su selección para poder copiar/pegar en un CFG.


* Mejora: Algunas mejoras menores en el LOG

   Se han agregado algunos datos extra para mostrar que config.fpw se está usando, principalmente para propósitos de diagnóstico.




Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de GitHub




Parte 2: Extensiones para Plastic



Las extensiones para Plastic son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg desde dentro de la interfaz de Plastic.


La lista de cambios es la siguiente:

> Actualización de FoxBin2Prg: Versión sincronizada con la última versión de FoxBin2Prg



El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de las Extensiones FoxBin2Prg para Plastic de GitHub



Thank you for your support!



Artículos relacionados:

FoxBin2Prg, el sucesor mejorado del Scctext

FoxBin2Prg: Detalle de vistas, Datos de uso, Configuraciones y más

FoxBin2Prg: Guía rápida de uso y configuración


 Saludos!

martes, marzo 06, 2018

Nueva versión v1.19.50 de FoxBin2Prg (arreglos y mejoras) y Extensiones para PlasticSCM v2.5.50


Parte 1: FoxBin2Prg / Parte 2: Extensiones para Plastic

Parte 1: FoxBin2Prg


FoxBin2Prg es un programa pensado para sustituir a SccText/X y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que pueden ser modificadas y permiten recrear el binario original. Puede ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios).


La lista de cambios es la siguiente:

v1.19.50

* Bug Fix pjx: Algunos campos relacionados con el homedir de los PJX no siempre se sincronizaban bien
 

   En ocasiones podía pasar que al abrir un PJX recién regenerado en el directorio original, preguntara si se quería cambiar al nuevo directorio por defecto. En este caso particular eso ya no pasa.

* Mejora: Agregada una nueva opción de configuración (CFG) BodyDevInfo, desactivada por defecto
 

   En la versión v1.19.49.1 se notificó la ausencia en la exportación de los PJX del campo DevInfo del cuerpo como un Bug, pero realmente ese campo solo tiene info útil en la cabecera, ya que en el cuerpo es un campo compilado con información de archivos include, por lo que se regenera automáticamente al compilar el PJX. Desde esta versión ese campo se vuelve a excluir no solo porque se regenera al compilar, sino porque genera demasiadas diferencias cada vez que se compila, y no es necesario. Se puede activar su guardado usando la nueva opción de CFG BodyDevInfo:1.

* Mejora: Nueva opción de configuración PRG_Compat_Level
 

   Cuando se usa el nuevo valor PRG_Compat_Level: 1 (por defecto es 0) los comentarios de métodos de clases se guardan con el correspondiente HELPSTRING documentado en la ayuda, en vez del actual "&&". No es un cambio importante, solo acerca el código generado un poco más a las especificaciones de VFP. En el futuro este valor podría permitir nuevos valores si se incorporasen más opciones PRG-compatibles.

* Mejora: Agregado workaround para poder exportar/importar datos de tablas cuya protección se basa en los eventos de la base de datos DBC

   Las bases de datos DBC de VFP permiten usar Eventos para detectar apertura y cierre de tablas, lo que a veces puede bloquear o entorpecer la exportación o importación de datos con FoxBin2Prg. Se ha agregado un workaround para saltar este control y poder importar/exportar igualmente. Un ejemplo de esto se tiene en la tabla DVDS.DBF que viene en uno de los ejemplos de VFP del directorio de instalación, donde al intentar abrirla desde la ventana de comandos pide una clave.

v1.19.49.8

* Bug Fix vcx (issue#17): Cuando se convierte a texto un VCX corrupto con objetos duplicados, sale el error "The specified key already exists" (Kirides/Doug Hennig)

   Un bug en la detección de registros para ignorar provocaba en ciertas situaciones errores por nombres duplicados. Aquí se resuelven esos casos.

v1.19.49.7

* Bug Fix dbf: Cuando se regenera el texto de un DBF con campos llamados "X" o "I", se produce un error (Francisco Prieto)

   Este error solo ocurría en las condiciones descriptas porque los campos de tabla tienen prioridad sobre las variables de mismo nombre. Se solucionó anteponiendo "m." a esas variables.

v1.19.49.6

* Bug Fix vcx/vc2 (Issue#15): FoxBin2Prg debería ignorar los registros que ignora el diseñador (Doug Hennig)

   Una característica no-documentada de los VCX es que permite mantener registros desactivados que nunca se mostrarán en el diseñador de clases (el diseñador los ignora). El problema es que estos registros ignorados (muy poco frecuentes) FoxBin2Prg los ve y los incluye dentro del código generado. Desde esta versión se ignoran también.

* Bug Fix vcx/vc2 (Issue#16): FoxBin2Prg codifica la propiedad MemberData con CRLF, lo que puede causar el error "MemberData value is too long" (Doug Hennig)

   La propiedad MemberData tiene una longitud máxima de 8192 bytes, por lo que ahorrar cada byte es importante. Por defecto VFP guarda las propiedades de la misma forma, pero una optimización en el Property Editor (VFPx) permitió compactar esa propiedad aún más, dejando más espacio para nombres de propiedades. FoxBin2Prg ahora la guarda de la misma forma compactada que el Property Editor de VFPx.

v1.19.49.5

* Bug Fix dbf (Issue#13): Cuando se exportan datos de DB2 a DBF, los TABS al inicio de campos memo se pierden (Doug Hennig)

   Los campos memo pueden guardar cualquier tipo de información, incluso caracteres especiales. En este caso, dado que FoxBin2Prg genera una salida a texto con ajuste por tabulaciones para mantener una apariencia fácil de leer y comparar, hacía que el hacer el paso contrario (texto a DBF) se quitaran esas tabulaciones al leer los datos, pudiendo afectar a los campos memo que guarden TABS como parte de su información. Aquí queda corregido ese caso.

v1.19.49.4

* Bug Fix vcx (Issue#11): Cuando se usa ClassPerFile en modo API y se importa una clase, a veces sus nombres (propiedad name="nombre") quedan sin entrecomillar, provocando errores (Lutz Scheffler)

   Como se comenta en el asunto, esto solo ocurría en modo API (uso de FoxBin2Prg en modo clase instanciable).

v1.19.49.3

* Bug Fix dbf: Los campos tipo Double son definidos explícitamente con 0 decimales cuando no se definen decimales (Jerry Stager)

   Cuando no se indica la precisión del campo Double, por defecto VFP asume 2 decimales, pero FoxBin2Prg estaba asumiendo erróneamente 0 decimales. Aunque el dato se guarda bien igual, el problema que se produce es visual, ya que no se mostraban los decimales en este caso.

v1.19.49.2

* Bug Fix vcx: ClassPerFile no funciona correctamente desde la versión v1.19.49.1 (Lutz Scheffler)

   Un condicionado incorrecto producía que no se exporten las clases individuales.

v1.19.49.1

* Bug Fix pjx: El campo DevInfo solo debe usarse para los PJX

   El soporte para este campo en el cuerpo de los PJX estaba implementado en erróneamente para otros tipos de archivo, como vcx/scx. Ahora se circunscribe solo a los PJX.

v1.19.49

* Mejora: Se reemplaza el uso del método MoveFile del objeto Scripting.FileSystemObject por una función Win32API equivalente

   Las funciones Win32API suelen tener un mejor desempeño y fiabilidad ante errores que los objetos del sistema, por eso el cambio da mejor estabilidad.

* Mejora: Agregado soporte para archivos CFG temporales cuando se usa la API de bajo nivel

   Hay casos en los que usando la API de bajo nivel se necesita una configuración temporal que prevalezca sobre la encontrada en el disco. Con este cambio esto ahora es posible.

* Bug Fix: La exportación de una sola clase con ClassPerFile con la sintaxis "classlib.vcx::classname" como parámetro no funciona (Lutz Scheffler)

   Se corrige este caso para permitir exportar una sola clase con esta sintaxis.

* Mejora: Agregado el soporte de importación de una sola clase con la sintaxis "library.vcx::classname::import"como parámetro

   Ahora usando FoxBin2Prg desde la terminal de Windows o en modo API usando un parámetro con sintaxis "library.vcx::classname::import" permite importar la clase indicada solamente, sin importar el resto de clases.

* Mejora: Agregado el soporte de exportación de una sola clase con la sintaxis "library.vcx::classname::export"como parámetro

   Ahora usando FoxBin2Prg desde la terminal de Windows o en modo API usando un parámetro con sintaxis "library.vcx::classname::export" permite exportar la clase indicada solamente, sin exportar el resto de clases.

* Mejora: Ambas sintaxis para importar/exportar una sola clase no requieren de un archivo CFG 

   El soporte de ClassPerFile requiere que esté configurado en un CFG, pero cuando se usa la sintaxis "library.vcx::classname::import" o "library.vcx::classname::export" como sintaxis de parámetro esto no es necesario.

* Bug Fix frx/lbx: Se genera información parcialmente corrompida para los archivos FRX/LBX cuando se usan caracteres "&&"dentro de expresiones de campo (Alejandro A. Sosa)

   Usar este tipo de caracteres, no como comentario, sino como parte de una expresión, es un caso de uso válido que no estaba contemplado, ya que se estaba tomando como comentario, provocando que la expresión se corte por ese punto.

* Mejora: Uso de directorio temporal seguro con sys(2023)

   Cuando sys(2023) apunta a "Program Files", entonces FoxBin2Prg usa getenv("temp") para guardar los temporales y evitar errores por directorio de solo lectura.

* Mejora: Agregadas algunas configuraciones en el config.fpw para intentar evitar interferencias con la configuración actual de VFP



* Mejora: Agregado soporte para guardar el campo "User" (Doug Hennig)

   El campo User no es usado por VFP y por lo tanto no es imprescindible, pero al ser un campo disponible para el usuario, para quienes lo usan puede ser importante, y por eso se ha agregado su soporte.



Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de GitHub



Parte 2: Extensiones para Plastic



Las extensiones para Plastic son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg desde dentro de la interfaz de Plastic.


La lista de cambios es la siguiente:

> Actualización de FoxBin2Prg: Versión sincronizada con la última versión de FoxBin2Prg



El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de las Extensiones FoxBin2Prg para Plastic de GitHub



Thank you for your support!



Artículos relacionados:

FoxBin2Prg, el sucesor mejorado del Scctext

FoxBin2Prg: Detalle de vistas, Datos de uso, Configuraciones y más

FoxBin2Prg: Guía rápida de uso y configuración


 Saludos!

jueves, enero 25, 2018

Visual FoxPro 9: Cómo arreglar ciertos tipos de corrupción en librerías VCX (_Memberdata)

En Visual FoxPro las librerías pueden funcionar con ciertos tipos de corrupción sin que nos demos cuenta y sin errores visibles o funcionales, pero cuando se trabaja con Control de Código fuente y se usan las vistas de texto, como la generada por FoxBin2Prg, a veces estos errores se hacen evidentes y siempre es mejor solucionarlos.

En este artículo veremos el caso de _Memberdata y cómo arreglarlo.



_Memberdata

_Memberdata es una propiedad que guarda la capitalización de las propiedades y métodos creados. Por defecto VFP crea todas las propiedades y métodos en minúsculas, pero con la propiedad _Memberdata VFP puede recordar la capitalización que le demos a la propiedad (Ver más información en la ayuda de VFP o en la web de Microsoft sobre MemberData Extensibility)

Por ejemplo, si creamos la propiedad "ValorMaximo" con el PEM Editor (de VFPx), la propiedad _Memberdada tendrá información con esta estructura:

<VFPData>
   <memberdata name="valormaximo" display="ValorMaximo"/>
</VFPData>


Donde:
  • name contiene el nombre original en minúsculas
  • type (opcionalmente) contiene el tipo de elemento ("Property" o "Method" habitualmente)
  • display contiene el nombre capitalizado a mostrar

Propiedad "ValorMaximo" creada con el PEM Editor


A medida que se van agregando propiedades capitalizadas, se irán agregando también elementos <memberdata name="xx" display="Xx">, y llegado un momento dado este campo puede llegar a ser bastante largo (puede tener hasta unos 8 KiB de longitud)

Este es un ejemplo de propiedad _Memberdata corrupta, visto con el Notepad++ desde la vista texto generada por FoxBin2Prg de la librería foxcharts.vcx en GitHub:



Pueden observarse algunos problemas evidentes:

  1. VFPData aparece varias veces, cuando solo debería aparecer 2 veces
  2. Siendo un miembro codificado en XML, debería tener un tag <VFPData> de inicio y un tag </VFPData> final, el cual no se ve
  3. El tag <VFPData> de inicio está anidado en sí mismo varias veces
Bueno, sabemos que esto está mal y queremos solucionarlo, ¿cómo se puede verificar la lista de propiedades que debería ir? Esa parte es fácil, solamente hay que echar un vistazo en la cabecera VC2 de la clase para ver qué propiedades y métodos se han definido:

*<DefinedPropArrayMethod>
    *m: caption_assign
    *m: reset        && Resets the legend GDI+ objects
    *m: rotation_assign
    *m: _drawstring
    *m: _setup
    *m: _updatemeasures
    *m: _value_assign
    *p: backcoloralpha
    *p: forecoloralpha
    *p: format        && Specifies the input and ...
    *p: format2
    *p: isparent
    *p: ogfx
    *p: rotationcenter
    *p: _forceformat
    *p: _height
    *p: _initialized
    *p: _memberdata        && XML Metadata ...
    *p: _obrush
    *p: _ofont
    *p: _orectangle
    *p: _ostringformat
    *p: _transfcaption
    *p: _value
    *p: _vartype
    *p: _width
*</DefinedPropArrayMethod>



Mirando nuevamente la propiedad _Memberdata y su contenido, puede verse un patrón de repetición de varias propiedades, donde básicamente se repite esta parte:

_memberdata = <VFPData>
   <memberdata name="autosize" ... display="AutoSize"/>
   <memberdata name="whatsthishelpid" ... display="WhatsThisHelpID"/>
   <memberdata name="_setup" ...display="_Setup"/>
   <memberdata name="forecoloralpha" ... display="ForeColorAlpha"/>
   <memberdata name="backcoloralpha" ... display="BackColorAlpha"/>
   <memberdata name="width" ... display="Width"/>
   <memberdata name="oledragpicture" ... display="OLEDragPicture"/>

   ...
</VFPData>        && XML Metadata for customizable properties
con lo que recortando cuidadosamente el resto de repeticiones hasta el tag de finalización </VFPData>, quedaría resuelta esta parte.

Nota: Revisando esta librería encontré que tiene más secciones <VFPData> con problemas más adelante, con lo que una vez detectado el problema siempre es conveniente buscar y revisar todas las estructuras <VFPData> para asegurarse de que están correctas.


Puede pasar que alguna de las propiedades descriptas en los miembros <memberdata> esté incompleta o cortada, por ejemplo podría contener solamente la parte del "name" pero no la parte del "display".

Nuevamente, conociendo que la estructura mínima de un miembro debe contener el name y el display, simplemente se puede crear manualmente la propiedad display y ponerle un valor que seguramente va a ser bastante obvio: el nombre de la propiedad capitalizada que querramos que se muestre en el IDE de VFP.



Resumen


Una vez resueltos todos los problemas, se regenera el binario desde esta vista texto (click-derecho sobre el archivo VC2, elegir "Enviar a" -> FoxBin2Prg)

Como se ve, realmente no es difícil solucionar varios de estos problemas, pero sí es necesario dedicar un rato para analizar el problema, conocer qué es lo que estamos modificando, cuál es la estructura correcta e implementar la solución.


Hasta la próxima! :D

domingo, noviembre 12, 2017

Plastic SCM: Índice de videos de YouTube con algunas operaciones comunes

El presente post es para tener un índice con los videos que fui haciendo sobre el uso de Plastic SCM con Visual FoxPro 9.


PlasticSCM: Como cambiar el tipo de archivo a texto



PlasticSCM: Cómo cancelar un merge en proceso


PlasticSCM: Resolución manual de conflictos en FoxPro 9



PlasticSCM: Deshacer un changeset con merge sustractivo en FoxPro 9

FoxPro 9: Deshacer un merge de dos ramas en PlasticSCM



FoxPro 9: Merge en PlasticSCM de dos ramas con un directorio duplicado

Modificación en FoxPro 9 y checkin en PlasticSCM


Merge de 2 ramas y resolución de conflictos (directorio repetido)



PlasticSCM: Merge con Visual FoxPro 9

PlasticSCM: Merge con Visual FoxPro 9 - video 2





Hasta la próxima! :D


miércoles, agosto 31, 2016

Referencia: Temas y Artículos Agrupados - Para no perderse en el blog

Este post pretende poner un poco de orden en el caos de artículos y temas tratados que pasado un tiempo se hacen algo difíciles de encontrar, a modo de resumen y temas relacionados, para poder, en los casos que corresponda, tener los artículos ordenados desde el inicio hacia los temas más avanzados.

Inicialmente lo aplicaré a los artículos de Plastic, ya luego iré agregando otros donde ese orden sea beneficioso para el seguimiento del tema tratado.

Recordar que al final de los artículos, suelo poner links relacionados al tema.




Visual FoxPro 9

Cómo mover una tabla de una Base de Datos a otra

Cómo trabaja FoxPro internamente (traducción)

Control de versiones: ¿para qué sirve? ¿por qué es necesario?

Guía de buenas prácticas de programación y recomendaciones

La importancia de un buen nombre para los procedimientos y las funciones

La Interfaz, las reglas de negocio y los datos - Cómo separarlos y por qué

Los peligros de SET COLLATE

Selección de artículos y notas sobre problemas y troubleshoting para tener a mano

Seleccionar palabras de un textbox con solo un click

Técnicas de optimización en VFP: Tablas, archivos de texto, accesos al disco y buffering

Técnicas de programación en VFP: Procesos desatendidos y control de progreso visual

Unit Testing: Qué es y cómo se usa en VFP 9

Whitepaper: Cacheo de lectura y bloqueo oportunista en redes Microsoft Windows



Varios

Cómo configurar las notificaciones de Google de forma óptima

(Linux) Ubuntu 16.04: Agregando soporte para nuevo hardware (kernel)



PlasticSCM y FoxBin2Prg

PlasticSCM: Cómo trabajar en FoxPro 9 con ramas por tarea

Control de código fuente: Terminología común que hay que conocer

FoxBin2Prg: Control de código fuente con PlasticSCM

FoxBin2Prg: Detalle de vistas, datos de uso, configuraciones y más

FoxBin2Prg: Guía rápida de uso y configuración

Instalación de PlasticSCM paso a paso

PlasticSCM: Cómo configurar el usuario Administrador del Servidor

PlasticSCM: Cómo crear una rama para comenzar a trabajar

FoxPro 9: Creando un componente y agregándolo al control de código PlasticSCM

FoxPro 9: Modificando un componente que ya está bajo control de código

PlasticSCM: Hice un checkin erróneo de un archivo nuevo, ¿cómo lo arreglo?

PlasticSCM: ¿Qué es el Diff?

PlasticSCM: ¿Para qué sirve el Annotate?

FoxPro 9 y PlasticSCM: Cómo deshacer un changeset sin borrarlo

PlasticSCM: ¿Qué es el Merge?

PlasticSCM: ¿Qué es el Shelve?

PlasticSCM: Opciones de búsqueda y visualización de ramas y changesets

PlasticSCM: El merge sustractivo como reemplazo del borrado

PlasticSCM: Qué es el Cherry Pick y cómo se usa 

PlasticSCM: ¿Qué es nivelar una rama?

PlasticSCM: Cómo configurar la replicación de repositorios Plastic locales y remotos

PlasticSCM: Cambiar la ubicación del Repositorio

Plastic SCM: Índice de videos de YouTube con algunas operaciones comunes


domingo, julio 24, 2016

Nueva versión v1.19.48 de FoxBin2Prg (arreglos) y Extensiones para PlasticSCM v2.5.48


Parte 1: FoxBin2Prg / Parte 2: Extensiones para Plastic

Parte 1: FoxBin2Prg


FoxBin2Prg es un programa pensado para sustituir a SccText/X y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que pueden ser modificadas y permiten recrear el binario original. Puede ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios).


La lista de cambios es la siguiente:

* Bug Fix: Mensaje de error 'variable tcOutputFile not found' (german version) (Andy Kasper)
 

   Este error solo se muestra en la versión traducida al Alemán por el uso de un nombre de variable incorrecto en un mensaje de estado. (Fix enviado por Andy Kasper / Alemania).

* Bug Fix: Posición de menú BEFORE siempre cambiada a AFTER al convertir (Andy Kasper)
 

   Cuando se convierten menús de texto a binario y el menú está configurado como BEFORE, se estaba cambiando a AFTER por un error de comparación. (Fix enviado por Andy Kasper / Alemania).

* Bug Fix: No se respetan algunas restricciones de conversión para DBFs cuando se usan CFGs particulares por tabla (Nathan Brown)
 

   Cuando se usa el nuevo valor DBF_Conversion_Support: 8 en un config de DBF (filename.dbf.cfg), ciertas restricciones no son respetadas, permitiendo que otros DBFs que no tienen esa configuración también sean regenerados desde las verisones texto.

* Bug Fix db2: Cuando se lee un memo multilínea de un db2 con datos antiguo, se produce un error de índice fuera de rango

   Hasta la versión v1.19.46 los memos de los DBFs se exportaban en una única línea, reemplazando los retornos de carro por su equivalente &#13 y &#10, pero desde la v1.19.47 los memos se exportan como multi-línea. El problema era que al importar los DB2 no se estaban teniendo en cuenta los antiguos memos de línea única anteriores a la posibilidad de importarlos con DBF_Conversion_Support: 8.

* Bug Fix db2: Cuando se usa ExcludeDBFAutoincNextval: 1 en FoxBin2Prg.cfg y a la vez la importación de datos de una tabla con campo AutoInc, se produce el error "Error 2088, Field <FIELD> is read-only" (Nathan Brown)

   La opción de ExcludeDBFAutoincNextVal: 1 estaba usando un armado de SQL distinto al que se usa para importar datos, lo que provocaba ese error. Se ha cambiado para usar el mismo armado SQL que se usa en la nueva conversión.

* Bug Fix pj2: Cuando se regenera el binario de un PJ2 con archivos en una ruta con paréntesis y espacios, se genera un error "Error 36, Command contains unrecognized phrase/keyword" (Nathan Brown)

   Este error solo ocurre en las condiciones descriptas y fue descubierto al convertir las clases de ejemplo de VFP (Solution, FFC) en un Windows de 64 bits. (Bug Fix enviado por Nathan Brown / EEUU).

* Bug Fix frx: Los ControlSource de objetos OLE que contienen comillas se generan mal (Nathan Brown)

   Cuando en un reporte se usa un objeto OLE cuyo Control Source se define como "Expression or variable name" y se forma con una expresión del tipo ["] + nombre_var + ["], el motro de parser interpretaba un fin anticipado de expresión, cortándola en el primer ["]. Se ha agregado codificación/decodificación XML para este caso.

Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de VFPx


Link de descarga de GitHub



Parte 2: Extensiones para Plastic



Las extensiones para Plastic son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg desde dentro de la interfaz de Plastic.


La lista de cambios es la siguiente:

> Actualización de FoxBin2Prg: Versión sincronizada con la última versión de FoxBin2Prg



El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de las Extensiones FoxBin2Prg para Plastic de GitHub



Thank you for your support!



Artículos relacionados:

FoxBin2Prg, el sucesor mejorado del Scctext

FoxBin2Prg: Detalle de vistas, Datos de uso, Configuraciones y más

FoxBin2Prg: Guía rápida de uso y configuración


 Saludos!

jueves, junio 09, 2016

Nueva versión v1.19.47 de FoxBin2Prg (arreglos y mejoras) y Extensiones para PlasticSCM v2.5.47


Parte 1: FoxBin2Prg / Parte 2: Extensiones para Plastic

Parte 1: FoxBin2Prg


FoxBin2Prg es un programa pensado para sustituir a SccText/X y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que pueden ser modificadas y permiten recrear el binario original. Puede ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios).


La lista de cambios es la siguiente:

* Bug Fix: Cuando se indica como nombre de archivo "*" y como tipo "*", se regeneran automáticamente todos los archivos binarios desde los archivos de texto (Alejandro Sosa)
 

   Al usar FoxBin2Prg desde la línea de comandos de VFP e indicar los primeros 2 parámetros como "*", se regeneraban todos los binarios, siendo que es necesario indicar una extensión. Ahora está corregido y se comprueba este parámetro.

* Mejora: Agregados los fuentes de Filename_Caps.exe
 

   El programa Filename_Caps.exe se encarga de normalizar la capitalización de los archivos convertidos, pero como era un programa desarrollado aparte, solo estaba incluido el EXE. Ahora se incluyen los fuentes en el directorio Filename_Caps.

* Mejora: Permitir importar los datos exportados de los DBF (Walter Nichols)
 

   Desde esta versión se pueden importar los datos exportados de los DBF usando el nuevo valor DBF_Conversion_Support: 8 en un config de DBF (filename.dbf.cfg).

* Bug Fix vbs scripts: Algunos arreglos en los scripts vbs de conversión (Doug Hennig)
 

* Mejora: Nuevos métodos API de bajo nivel para automatización

   - get_DBF_Configuration: Permite obtener un objeto CFG con la configuración de la tabla indicada (tabla.dbf.cfg).
   - conversionSupportType: Permite devolver el código de soporte del archivo binario o texto indicado (0,1,2,4,8)



Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de VFPx


Link de descarga de GitHub



Parte 2: Extensiones para Plastic



Las extensiones para Plastic son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg desde dentro de la interfaz de Plastic.


La lista de cambios es la siguiente:

> Actualización de FoxBin2Prg: Versión sincronizada con la última versión de FoxBin2Prg



El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de las Extensiones FoxBin2Prg para Plastic de GitHub




Artículos relacionados:

FoxBin2Prg, el sucesor mejorado del Scctext

FoxBin2Prg: Detalle de vistas, Datos de uso, Configuraciones y más

FoxBin2Prg: Guía rápida de uso y configuración


 Saludos!

miércoles, febrero 24, 2016

VFP: Seleccionar palabras de un textbox con un solo click

Más de uno habrá tenido la necesidad de poder seleccionar una palabra con un solo click dentro de un textbox:




Aprovechando que alguien hizo la pregunta en un foro de si se podía hacer esto en FoxPro con un solo click, me tomé un momento para aceptar el reto y dar la respuesta.

El siguiente código está en formato texto (guardarlo como "test_selword.sc2") y se puede regenerar el form original con FoxBin2Prg.

*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (ES) AUTOGENERADO - ¡¡ATENCIÓN!! - ¡¡NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!!
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.19" SourceFile="test_selword.scx" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS dataenvironment AS dataenvironment
     *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" />

    DataSource = .NULL.
    Height = 0
    Left = 0
    Name = "Dataenvironment"
    Top = 0
    Width = 0

ENDDEFINE

DEFINE CLASS form1 AS form
     *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" />

    *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
    *< OBJECTDATA: ObjPath="Text1" UniqueID="" Timestamp="" />
    *< OBJECTDATA: ObjPath="Text2" UniqueID="" Timestamp="" />
    *< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" />

    Caption = "Form1"
    DoCreate = .T.
    Name = "Form1"

    ADD OBJECT 'Label1' AS label WITH ;
        Caption = "Selected word:", ;
        Height = 17, ;
        Left = 32, ;
        Name = "Label1", ;
        Top = 84, ;
        Width = 84
        *< END OBJECT: BaseClass="label" />

    ADD OBJECT 'Text1' AS textbox WITH ;
        Height = 23, ;
        Left = 28, ;
        Name = "Text1", ;
        Top = 28, ;
        Value = This is phrase for selecting words with a click, ;
        Width = 276
        *< END OBJECT: BaseClass="textbox" />

    ADD OBJECT 'Text2' AS textbox WITH ;
        Height = 23, ;
        Left = 28, ;
        Name = "Text2", ;
        Top = 104, ;
        Width = 100
        *< END OBJECT: BaseClass="textbox" />
  
    PROCEDURE Text1.Click
        LOCAL lnLeftLim, lnRightLim, lnWordLen, lnSelStart
        lnSelStart    = THIS.SelStart
       
        *-- Search Left Limit
        lnLeftLim    = 1
        FOR I = lnSelStart + 1 TO lnLeftLim STEP -1
            IF SUBSTR(THIS.Text, I, 1) == ' ' THEN
                lnLeftLim    = I + 1
                EXIT
            ENDIF
        ENDFOR
       
        *-- Search Right Limit
        lnRightLim    = LEN(THIS.Text)
        FOR I = lnSelStart + 1 TO lnRightLim
            IF SUBSTR(THIS.Text, I, 1) == ' ' THEN
                lnRightLim    = I - 1
                EXIT
            ENDIF
        ENDFOR
       
        lnWordLen    = lnRightLim-lnLeftLim+1
       
        *-- If a space was selected, then do nothing
        IF lnWordLen >= 1
            THISFORM.text2.Value = SUBSTR(THIS.text,lnLeftLim,lnWordLen)
            THIS.SelStart = lnLeftLim-1
            THIS.SelLength = lnWordLen
        ENDIF
       
    ENDPROC

ENDDEFINE



Hasta la próxima! :-)

viernes, febrero 12, 2016

Nueva versión v1.19.46 de FoxBin2Prg (arreglos y mejoras) y Extensiones para PlasticSCM v2.5.46


Parte 1: FoxBin2Prg / Parte 2: Extensiones para Plastic

Parte 1: FoxBin2Prg


FoxBin2Prg es un programa pensado para sustituir a SccText/X y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que pueden ser modificadas y permiten recrear el binario original. Puede ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios).


La lista de cambios es la siguiente:

* Bug Fix: Arreglo de bug en método set_UserValue() cuando se intenta obtener información de un error que no puede abrir la tabla (por ej, porque el memo está corrupto)
 

   Cuando ocurre o se detecta algún error se intenta obtener más información de contexto dentro del memo (vcx/scx) para mostrarlo. Si el memo está corrupto se interrumpe la recolección de datos y se queda a medias. Ahora se puede continuar adelante hasta el final, aunque no se pueda leer el memo.

* Mejora: Agregado soporte interno para consulta de información de cfg de directorio, mediante nuevo parámetro opcional, para los métodos API que lo requieren (por ej: get_Ext2FromExt, hasSupport*)
 

   Las funciones API get_Ext2FromExt y hasSupport* permiten indicar en un nuevo parámetro el directorio donde sobre el que se desea obtener dicha información, de modo que pueda evaluarse antes cualquier archivo de configuración que pueda afectar a ese contexto.

* Bug Fix: Cuando se procesa un directorio o un proyecto con todos los archivos, a veces puede ocurrir el error "Alias already in use" (Dave Crozier)
 

   Un problema de garbage collection estaba causando que en determinadas situaciones de error al procesar múltiples archivos una tabla se quede abierta y luego al intentar analizar la siguiente se estaba reabriendo la misma tabla anterior.

* Bug Fix mnx: Cuando se usa '&&' en los textos de las opciones, se corrompe el binario del menú al regenerarlo (Walter Nichols)
 

   Esto pasaba porque se confundían estos símbolos con los comentarios in-line. Se agregó un algoritmo específico para detectar este caso.

* Mejora: El objeto WSscript.Shell da problemas en algunos entornos o bajo ciertas condiciones, por lo que se reemplaza por llamadas Win32 nativas (Aurélien Dellieux)
 

   En algunos equipos WScritp.Shell no mostraba siempre el reporte de errores, por lo que se sustituyó por funcionalidad equivalente basada en funciones API de Windows.

* Bug Fix Frx/Lbx : El ordenamiento de registros de los reportes cambia el orden Z de los objetos próximos que se solapan, pudiendo causar que se visualicen mal (Ryan Harris)
 

   Hasta ahora se venían ordenando los registros internos de los reportes con un orden que estaba provocando problemas para determinados ordenamientos manuales del usuario, haciendo que se pierda el orden correcto de objeto encima/debajo. Se ha quitado dicho ordenamiento para mantener el indicado por el usuario manualmente.

* Bug Frx/Lbx: Cuando se regeneran reportes o etiquetas con textos multilinea alineados al centro o a la derecha, la alineación no es completamente correcta (Ryan Harris)
 

   Esto ocurria porque internamente se estaban guardando los textos con CR+LF en vez de solamente CR, lo que hacía que el parser de VFP interprete la alineación de forma distinta.

* Bug Frx/Lbx: Cuando se agrupan controles en diseño y se convierte a texto, al regenerar se pierden las agrupaciones (Lutz Scheffler)
 

   Esto ocurría porque se estaban ordenando los objetos (ObjType 1,25,26) alfabéticamente en vez de mantener el orden original.

* Bug Fix Pjx: Los archivos SPR y MPR no estan bien representados en la información del proyecto (Ralf Wagner)
 

   Estos archivos no tenían especificado el tipo correcto para ser detectados como archivos de texto. Code Fix aportado por Ralf Wagner.

* Bug Fix Pj2: Se genera un error al regenerar un PJX desde un PJ2 donde algún archivo contiene paréntesis (EddieC)
 

   Se ha corregido la búsqueda de los nombres de archivo para contemplar estos casos.

* Mejora dbf: Nuevo parámetro ExcludeDBFAutoincNextval para evitar diferencias por este dato (edyshor)
 

   Este nuevo parámetro permite que al generar el archivo DB2 con la información de estructura de un DBF con campo autonumérico, no se guarde el dato del siguiente valor a tomar, lo que evita diferencias producidas por el mismo.

* Bug Fix: Cuando se procesa un archivo en el directorio raiz, se genera un error 2062 (Aurélien Dellieux)

   Se ha corregido el algoritmo de recorrido de directorios para contemplar este caso.

* Nuevo: Se a agregado una nueva herramienta fb2p_diff

   Esta nueva herramienta está pensada para quienes solamente quieren hacer una comparación rápida de binarios para ver las diferencias:





Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de VFPx


Link de descarga de GitHub



Parte 2: Extensiones para Plastic



Las extensiones para Plastic son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg desde dentro de la interfaz de Plastic.


La lista de cambios es la siguiente:

> Actualización de FoxBin2Prg: Versión sincronizada con la última versión de FoxBin2Prg



El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de las Extensiones FoxBin2Prg para Plastic de GitHub




Artículos relacionados:

FoxBin2Prg, el sucesor mejorado del Scctext

FoxBin2Prg: Detalle de vistas, Datos de uso, Configuraciones y más

FoxBin2Prg: Guía rápida de uso y configuración


 Saludos!