Nueva versión v1.19.50 de FoxBin2Prg (arreglos y mejoras)

574 views
Skip to first unread message

Fernando D. Bozzo

unread,
Mar 7, 2018, 3:13:30 PM3/7/18
to Comunidad de Visual Foxpro en Español
Hola a tod@s:

Hace un par de años del último mensaje sobre esto, así que toca renovar :)

Les quería comentar que hay una nueva versión de esta herramienta de conversión bidireccional binario-texto con algunos arreglos y algunos nuevos métodos API (en modo objeto o desde la terminal de Windows):

https://fdbozzo.blogspot.com.es/2018/03/nueva-version-v11950-de-foxbin2prg.html

Lo pueden usar solo o con cualquier herramienta de Control de Código, Herramienta de Diff o editor de texto, y de paso sirve como backup en modo texto de clases, forms y demás binarios, cosa que si ocurre un desastre, se recupera fácil y se comprime mejor que los binarios. También puede ser útil para reemplazos masivos.

En el modo de ClassPerFile (clase por archivo) se puede tener un archivo diferente por cada clase contenida en una librería, lo que facilita mover clases entre librerías y más.


Saludos!

Fernando D. Bozzo

Augusto Ortiz

unread,
Mar 7, 2018, 3:45:11 PM3/7/18
to publice...@googlegroups.com

Gracias Fernando,

Descargado

Augusto

Fidel Charny

unread,
Mar 7, 2018, 4:09:14 PM3/7/18
to Comunidad de Visual Foxpro en Español
Hola Fernando
Muchísimas gracias por esta formidable herramienta!
Un gran abrazo
Fidel

Esteban H.

unread,
Mar 7, 2018, 5:10:27 PM3/7/18
to publice...@googlegroups.com

Hola Fernando.

 

Antes q postearas la había descargado y estaba observando q archivos nuevos había, como lo es la carpeta de ThorUpdater.

Veo q con el apuro de compilar te quedó el exe de Foxbin2prg sin el icono, un detalle… jeje.

 

Muchas Gracias Fernando x compartir esta herramienta, no la uso como se debería, pero sí la uso en lo q necesito.

 

Un abrazo.

Esteban.

Fernando D. Bozzo

unread,
Mar 7, 2018, 5:34:35 PM3/7/18
to publice...@googlegroups.com
Hola Esteban:

Sí, luego de varias compilaciones al final quedó el EXE sin el icono, pero cuando me dí cuenta ya había versionado y subido a GitHub. Lamentablemente VFP por algún motivo no compila siempre de la misma forma.
Igual con una recompilación se soluciona, pero es un detalle que me molesta, porque suelo fijarme en esas cosas :-/


Puede que ya lo sepas, pero por las dudas te lo comento:
Desde hace tiempo hay incluido un programa (fb2p_diff.exe) para poder comparar archivos vcx, scx, etc, directamente, solo arrastrando y soltando sobre la zona de ingreso de nombres de archivo correspondientes, o escribiendo sus rutas o eligiéndolos con el botón a la derecha de cada textbox.

Esto viene bien para quienes necesiten hacer una comparación rápida directa, sin convertir manualmente cada archivo antes. Viene preconfigurada para usar WinMerge portable (incluido con FoxBin2Prg), pero también se pueden configurar otras herramientas en la solapa "Diff tool configure". Además tiene un checkbox "Always on top" que justamente sirve para poder arrastrar archivos desde el administrador de archivos de Windows y que no se vaya la ventana debajo (que suele pasar si no está marcado)

Como el WinMerge permite también modificar en ambos paneles, o pasar una sección de uno al otro (por ejemplo para hacer un merge), es una forma sencilla de pasar cambios de un binario a otro (bueno, realmente a su vista de texto, luego se debe regenerar)






Víctor Hugo Espínola Domínguez

unread,
Mar 7, 2018, 6:09:06 PM3/7/18
to publice...@googlegroups.com
Muchas gracias Fernando por esta excelente herramienta!

Saludos,
Víctor.
Lambaré - Paraguay.

Esteban H.

unread,
Mar 7, 2018, 6:47:56 PM3/7/18
to publice...@googlegroups.com

Ahhh q bueno.

 

Estoy acostumbrado a hacer siempre en el explorador, botón derecho enviar a “Foxbin” y luego de ahí trabajo con el WinMerge, pero voy a probar lo q me decís, es mucho mas simple.

 

Nuevamente gracias.

 

Esteban

Muchas Gracias Fernando x compartir esta herramienta, no la uso como se debería, pero sí la uso en lo q necesito.

 

Un abrazo.

Esteban.

 

image001.png

Carton Jeston

unread,
Mar 16, 2018, 3:58:39 PM3/16/18
to Comunidad de Visual Foxpro en Español

Era una gran herramienta, que al principio usaba mucho aunque de un tiempo a esta parte la uso cada vez menos hasta el punto que ya ni la toco.

Es decir, ha sido una semana muy ajetreada, el Lunes pude sentarme a programar pero a partir del Martes casi no pude y hoy no he podido usarla. Realmente las aplicaciones cada día tienen menos tiempo de vida. Una pena, era una buena herramienta :D

Aun asi me alegro mucho de la nueva version.

un saludo desde un Viernes cualquiera ;-)

Víctor Hugo Espínola Domínguez

unread,
Mar 16, 2018, 8:25:51 PM3/16/18
to publice...@googlegroups.com
Era? Para los que aún desarrollamos en VFP Foxbin2prg y Thor son herramientas invaluables, y conste que aún no uso Foxbin2prg para lo que fue principalmente desarrollado, el control de versiones.

Lo uso para crear backup en formato texto del proyecto, con un par de clicks y en pocos segundos tienes el backup en un formato prácticamente incorruptible, para enviar forms, reports, etc. por correo o mensajería sin que el navegador los rechace, para efectuar cambios globales en forms, clases, reports, usando unas pocas líneas de código:

Local laForm[1], ;
lcArchivoSc2 As String, ;
lcBusca As String, ;
lcDir As String, ;
lcForm As String, ;
lcFormSc2 As String, ;
lcForms As String, ;
lcReemplaza As String, ;
lcTextos As String, ;
lnForm As Number, ;
lnForms As Number

lcBusca = "AS textbox"
lcReemplaza = "AS txtBase"
lcForms = "*.scx"
lcTextos = "*.sc2"
lcDir = ".\Forms\"

lnForms = Adir(laForm, m.lcDir + m.lcForms, "A", 1)
For lnForm = 1 To m.lnForms
lcForm = m.lcDir + m.laForm[m.lnForm, 1]
Do Locfile("FoxBin2Prg", "prg", "Encuentra a FoxBin2Prg") With (m.lcForm)
lcArchivoSc2 = Strtran(Lower(m.lcForm), ".scx", ".sc2")
lcFormSc2 = Filetostr(m.lcArchivoSc2)
If Atcc(m.lcBusca, m.lcFormSc2) = 0
Loop
Endif
lcFormSc2 = Strtran(m.lcFormSc2, m.lcBusca, m.lcReemplaza)
lcArchivoSc2 = Juststem(m.lcArchivoSc2) + "_new." + Justext(m.lcArchivoSc2)
lcArchivoSc2 = m.lcDir + m.lcArchivoSc2
Wait Window m.lcArchivoSc2 Nowait
Strtofile(m.lcFormSc2, m.lcArchivoSc2)
*-- Modify File (m.lcArchivoSc2)
Do Locfile("FoxBin2Prg", "prg", "Encuentra a FoxBin2Prg") With (m.lcArchivoSc2)
Endfor

Saludos,
Víctor.
Lambaré - Paraguay.


Carton Jeston

unread,
Mar 17, 2018, 4:25:35 AM3/17/18
to Comunidad de Visual Foxpro en Español

El sábado, 17 de marzo de 2018, 1:25:51 (UTC+1), Víctor Hugo Espínola Domínguez escribió:
Era? Para los que aún desarrollamos en VFP Foxbin2prg y Thor son herramientas invaluables, y conste que aún no uso Foxbin2prg para lo que fue principalmente desarrollado, el control de versiones.Saludos,
Víctor.Lambaré - Paraguay. 

 Esta claro que una cosa es leer y otra es analizar. Cuado uno lee algo que no le gusta se ofusca y el analisis es incorrecto :-D

Veamos dije esto:

Era una gran herramienta, que al principio usaba mucho aunque de un tiempo a esta parte la uso cada vez menos hasta el punto que ya ni la toco.

Y me explique:


Es decir, ha sido una semana muy ajetreada, el Lunes pude sentarme a programar pero a partir del Martes casi no pude y hoy no he podido usarla.

Hablaba de mi uso de la herramienta en esta misma semana...

Realmente las aplicaciones cada día tienen menos tiempo de vida. Una pena, era una buena herramienta :D Aun asi me alegro mucho de la nueva version.

Aqui mucha ironia, cualquiera que siga el hilo anterior vera que llevo meses acosando a Fernando y yo alabando (y con razon) a esta herramienta imprescindible.

un saludo desde un Viernes cualquiera ;-)

El Viernes, dia clasico que tenemos reservado para soltar las burradas que se nos ocurren durante toda la semana.

Espero que esta aclaracion sea suficiente, no deseo convertirme en un martir en contra de mi voluntad. Recuerden que el humor y Fox2Bin son gratis :-D

Carton Jeston

unread,
Mar 18, 2018, 6:48:22 AM3/18/18
to Comunidad de Visual Foxpro en Español
La unica pega, el nombre FoxBin2Prg no se me queda y cada vez lo escribo de una manera aunque no es tan dificil... Bueno, tampoco es como schweppes, que se gasto mas dinero intentado que en España supieran pronunciar el nombre que en dar a conocer su producto. :-)

Fernando, una pregunta personal que hace tiempo me estoy haciendo. Muchos opininan que el fox esta muerto y sin embargo tu te sacas de la manga una herramienta como foxbin2prg, a sabiendas que dominas otros lenguajes. Aparte del amor incondicional a  foxpro ¿que otras motivaciones has encontrado para hacer algo asi? ¿como ves el futuro?

Fernando D. Bozzo

unread,
Mar 18, 2018, 9:03:03 AM3/18/18
to publice...@googlegroups.com
Como bien decís, con este lenguaje tengo un cariño tremendo y como a todos, me dió mucha pena que tanta potencia diseñada con tan buen gusto y simplicidad se haya dejado así.

El motivo por el que hice FoxBin2Prg fue la necesidad:

En el equipo de desarrollo veníamos usando por muchos años SourceSafe con el programa que trae VFP (scctext.prg) y del que hubo una versión mejorada en VFPx (scctextX.prg) en el que tuve la suerte de poder colaborar con algunas optimizaciones y de paso interiorizarme un poco de cómo funcionaba.

La necesidad se presentó cuando íbamos a cambiar la herramienta de control de código por Plastic, que luego de un par de presentaciones que nos hicieron me impresionó tanto y tan bien que pensé que si no aprovechábamos esa potencia en el manejo de los merges y nos quedábamos solamente con poder comparar, íbamos a quedarnos demasiado atrás en cuanto a prácticas de manejo de software, y aunque existía otra herramienta que permitía cierta posibilidad muy limitada de merge (TwoFox) trabajaba en formato XML, lo que introducía una nueva complejidad en las ya complejas mezclas de código (merges). Por todo esto, y sacando las mejores ideas de lo que conocía de ambas herramientas, es que me motivó a hacer FoxBin2Prg como proyecto Open Source en mi tiempo libre, sabiendo que hay mucho software por ahí hecho en VFP y que podía ser útil para bastante gente.

Y no me equivoqué: desde el comienzo tuvo muy buena aceptación y el ser Open Source permitió que muchos desarrolladores pudieran colaborar aportando ideas de mejoras, testing y reporte de bugs, lo que fue una experiencia inolvidable y muy buena, también me permitió conocer mejor a varias personas de las que participaron --incluso de este foro :)-- y eso es genial.
Cuando pueda voy a intentar colaborar en otros proyectos Open Source, pero antes tengo que conseguir el nivel técnico requerido en los lenguajes en los que están hechos, lo que requiere mucha práctica. Para eso viene muy bien los cursos gratuitos que se encuentran en edX, Coursera, MiriadaX y varios otros sitios

El futuro lo veo algo complejo, al menos en el mercado de las grandes y medianas empresas (las chicas son harina de otro costal), ya que en general todas las que tienen tecnologías antiguas o sin soporte como VFP y otras --muy importante en esos niveles--, están migrando a tecnologías más actuales, multiplataforma y más versátiles respecto de la posibilidad de conectividad, movilidad, IoT, etc., como Java, Javascript+HTML+CSS y otros lenguajes.

La diversificación de lenguajes disponibles también hace más difícil la elección, ya que en algunos casos se suman otros lenguajes poco conocidos (al menos para mí) o nuevos, como R, GO, Swift y más.

Creo yo que las empresas chicas --dependiendo del mercado en el que se muevan-- que puedan funcionar con software más o menos estándar (facturación, stock, etc, lo típico que hace falta) son las que menos les afecta el cambio tecnológico y tienen más fácil incluso hacer dichos cambios de a poco, sin apuro. Pero en empresas más grandes o multinacionales, las necesidades cambian y en muchos casos las tecnologías están condicionadas a la usada en otros países, donde además el soporte requerido es de un volumen que solo otra empresa dedicada a ello puede ofrecer. Hablo de soporte directamente de Microsoft , RedHat, IBM y ese tipo.
En estos casos, a veces los acuerdos con algunas de esas empresas llevan a incorporar ciertos productos muy potentes y no muy conocidos fuera de ellas, que además son caros, como soluciones de software basadas en HP-Exstream, o IBM Message Queue (MQ) y otros.

Quienes trabajan en alguna de estas empresas además se están encontrando con que los departamentos de software --que en general forman parte de las mismas-- se están externalizando, aprovechando leyes creadas para favorecer esa externalización, y donde en algunos casos la gente es no solo cambiada de empresa, sino también cambiada de provincia o de país.

Este modelo del que hablo, está mejor explicado en estos dos artículos (muy largo el primero):
Quienes estén en los demás segmentos del mercado --con clientes particulares, dando servicio personal, trabajando en nichos específicos, etc, como muchos en este foro-- por suerte difícilmente vayan a pasar por estos nuevos procesos de externalización y deslocalización que están haciendo varias empresas grandes.

Respecto del software, creo que --quitando excepciones o nichos específicos-- para poder pensar a largo plazo se debe poder manejar una gama de lenguajes que como mínimo debe incluir Javascript+HTML+CSS, y ya luego depende de cada uno, por ejemplo NodeJS, Python, algunas bases de datos SQL y No-SQL, etc.

Realmente lo importante --para mí-- es al menos conocer algunas tecnologías multiplataforma (porque no alcanza la vida para conocerlas todas), para qué sirven y dónde es mejor utilizarlas, ya que a veces es necesario vincular varias tecnologías, y ayuda mucho conocer algunos estándares y usarlos, sobre todo para la conectividad entre aplicaciones y sistemas, por eso el auge de XML y JSon.

Se nota que es domingo, se me fué un poco de amplitud el tema, pero es que es un tema muy amplio.
Espero que hayan sobrevivido hasta el final :D


Saludos!

Carton Jeston

unread,
Mar 20, 2018, 3:36:59 PM3/20/18
to Comunidad de Visual Foxpro en Español
No te preocupes por la extension de tu respuesta, la culpa es mia por preguntar... y ademas un Domingo!!! :-D

En serio, esta muy bien saber porque se hacen las cosas, en este caso por necesidad... que a su vez genero una oportunidad nueva para los demas que no deja de ser cubrir un aspecto fundamental que no sabiamos que era tan necesario.

Y el futuro, esta claro que segun en que liga juegas, tu nivel y capacitacion debe ser mas elevado y estar mas a la ultima, pero no puedes dormirte porque el agua sigue subiendo y al final el  que no sepa nadar se ahoga.

Gracias por la explicacion, siempre interesante. ;-)
un saludo

FCM

unread,
Apr 7, 2020, 9:22:59 AM4/7/20
to Comunidad de Visual Foxpro en Español
Fernando disculpa la molestia trate de convertir ExcelXML.prg a clase con el foxbin2prg lo convierte pero me sale un error "class name in invalid" te adjunto el prg cual seria el problema, gracias
ExcelXML.prg

Fernando D. Bozzo

unread,
Apr 7, 2020, 9:45:44 AM4/7/20
to publice...@googlegroups.com
Hola!

Es lógico que te de error, ya que FoxBin2Prg es para convertir binarios a texto y texto a binario. El formato texto generado es muy parecido a un PRG, pero con una estructura especial y sobre todo con varios metadatos en forma de comentarios que permiten volver a crear el binario original.

En este caso es un PRG normal y FoxBin2Prg no tiene la información que requiere para hacer el binario.

Para ver un ejemplo de la estructura que maneja, podés crear una clase de prueba que tenga más o menos lo mismo que tu clase PRG (mismos nombres de métodos, propiedades, etc) y comparar el archivo VC2 generado con tu PRG, para que veas las diferencias.

Sé de un caso en el que un usuario ha reproducido los metadatos de forma de poder generar la clase VCX, pero deben estar todos los necesarios y si faltan, el resultado puede ser un VCX inservible o que da errores o que esté mal ensamblado o que le falten cosas.

Saludos!


--
Visita el Blog de la Comunidad Visual FoxPro en Español: http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/publicesvfoxpro/4bGY4clkxWk/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver esta conversación en el sitio web, visita https://groups.google.com/d/msgid/publicesvfoxpro/d9c1b887-144f-4005-9c38-3fdb2f9e560b%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages