Primer programa "Hola xHabour"

Página 1 de 2. 1, 2  Siguiente

Ver el tema anterior Ver el tema siguiente Ir abajo

Primer programa "Hola xHabour"

Mensaje  Admin el Miér Jul 23, 2008 2:29 pm

Primero que nada, quiero decirles que por mi programacion empezo por dbase III, Foxpro y luego clipper, el cual avance hasta la version 5.01, lo demas ya todos los sabemos, realmente el clipper lo daba por muerto, asi como se oye, aunque hay empresas que aun usan los sistemas que diseñe, muchas otras ya pasaron a VFP, algunas otras a Vbasic con SQL, pero muchas otras me piden que siga con los programitas clipper, el camino para llegar a harbour no me ha sido muy facil, ya que nadie te da exactamente que es lo que hay que hacer para pasar a plataforma harbour o xharbour, de lo poco que he investigado puedo decir que harbour es un lenguaje digamole asi mas estable pero menos robusto que xharbour, aunque para mis necesidades creo que los dos se adaptan, si no estoy mal los dos son de codigo abierto, es decir no hay que pagar nada por usarlos, pero xharbour tiene algunas adaptaciones extras las cuales si tienen un costo por investigacion y estar trabajando en ello.

Bueno me estoy alargando un poco, pero ahora vamos al grano, eso si todo en modo de consola. El paso inicial es bajarte el harbour o el xharbour, yo opte por el segundo que lo puedes encontrar en www.xharbour.org en la opcion de downloads encontraras Binaries y alli la plataforma que quieras usar, en mi caso es windows, por aparte vamos a usar "xHarbour Binaries for Borland C++ 5.5.1", por otro lado tenemos que bajar el Borland C++ 5.5.1 que en la misma pagina de www.xharbour.com opcion Download - Required Tool, se encuentra.

Bueno despues de ya tener instalados estos programas, que de hecho ya tienen su instalador, vamos a crear nuestro primer programita hola.prg, en Xp clic en inicio - ejecutar y nos vamos al modo de consola con teclear "cmd" y "Enter", podemos usar el edit del dos y tecleamos los siguiente,

Procedure main()
clear
@1,1 Say "Hola xharbour"
wait "Presione una tecla para continuar"
return

Guardamos y, vamos a compilar.

Gracias a Jorge Eduardo de unos de los grupos de Yahoo me paso este archivo .bat que esta de lujo.

pueden crearlo igual con edit y copian las lineas de abajo, hay que tener cuidado en unicamente darles los paths en donde se encuentran el xharbour y el borland, y listo, ademas dependiendo si le pusieran a su .bat algo asi como xcompile.bat, y su archivo se llama hola.prg, vamos a compilar asi > xcompile hola

y listo ya deberia estar generado el .exe

** copiar desde aqui para el .bat**

@ECHO OFF
CLS

if A%1 == A GOTO :SINTAX
if NOT EXIST %1.prg GOTO :NOEXIST

ECHO Compiling...

set hdir=c:\xharbour
set bcdir=c:\borland\bcc55\bin

%hdir%\bin\harbour %1 /n /i..\include;%hdir%\include /p %2 %3 > clip.log
@type clip.log
IF ERRORLEVEL 1 PAUSE
IF ERRORLEVEL 1 GOTO EXIT

echo -O2 -e%1.exe -I%hdir%\include %1.c > b32.bc
%bcdir%\bcc32 -M -c @b32.bc
:ENDCOMPILE

echo c0w32.obj + > b32.bc
echo %1.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
echo %1.map, + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\hsx.lib + >> b32.bc
echo %hdir%\lib\hbsix.lib + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\vm.lib + >> b32.bc
echo %hdir%\lib\rtl.lib + >> b32.bc
echo %hdir%\lib\gtwin.lib + >> b32.bc
echo %hdir%\lib\Lang.lib + >> b32.bc
echo %hdir%\lib\macro.lib + >> b32.bc
echo %hdir%\lib\rdd.lib + >> b32.bc
echo %hdir%\lib\dbfntx.lib + >> b32.bc
echo %hdir%\lib\dbfcdx.lib + >> b32.bc
echo %hdir%\lib\common.lib + >> b32.bc
echo %hdir%\lib\libmisc.lib + >> b32.bc
echo %hdir%\lib\CodePage.lib + >> b32.bc
echo %hdir%\lib\DbfFpt.lib + >> b32.bc
echo %hdir%\lib\pcrepos.lib + >> b32.bc

rem Uncomment these two lines to use Advantage RDD
rem echo %hdir%\lib\rddads.lib + >> b32.bc
rem echo %hdir%\lib\ace32.lib + >> b32.bc

echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\import32.lib, >> b32.bc

ECHO *
ECHO Linking...
%bcdir%\ilink32 -Gn -Tpe -s @b32.bc

rem delete temporary files
rem @del %1.c

IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built
GOTO EXIT
ECHO

:LINKERROR
rem PAUSE * Linking errors *
GOTO EXIT

:SINTAX
ECHO SYNTAX: Build [Program] {-- No especifiques la extensi¢n PRG
ECHO {-- Don't specify .PRG extension
GOTO EXIT

:NOEXIST
ECHO The specified PRG %1 does not exist

:EXIT

Admin
Admin

Mensajes: 3
Fecha de inscripción: 23/07/2008

Ver perfil de usuario http://harbour.foroslatinos.net

Volver arriba Ir abajo

Compilando con xedit

Mensaje  byrpa el Miér Nov 19, 2008 5:17 pm

Estuve investingando y encontre este link interesante.

http://objetopersistente.blogspot.com/2008/05/de-clipper-x-harbour-con-xedit.html

no lo he probado pero hay que compartir.

bye

byrpa

Mensajes: 63
Fecha de inscripción: 19/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Para compilar comodamente

Mensaje  Heztevan el Jue Nov 20, 2008 9:27 pm

Hagan la prueba con el link de objeto persistente.
Con esa guia empece yo hace unos 3 meses y ya he migrado varios proyectos de muchos modulos cada uno... les garantizo que es la manera mas comoda, limpia y trasparente de compilar tu codigo clipper con harbour o xharbour (incluso fivewin, minigui y oohg), para los problemitas iniciales que se presentan (falta de librerias, errores de settings etc.) en la cadena de posts ya estan solucionados todos.

prueben y olvidense de los BATs de compilado/linkeado que estan mas complicados que el propio sistema. Smile

Saludos.

Heztevan

Mensajes: 9
Fecha de inscripción: 20/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Migrando de clipper 5 a Xharbour

Mensaje  raullando el Vie Nov 21, 2008 1:30 pm

Hola!
Este foro me cae como anillo al dedo.
Estoy precisamente investigando para poder pasar mis programas de clipper 5 a Xharbour para lograr que corran a 32 bits.
Al principío pensaba que era solo de compilar y listo, pero parece que pueden existir algunos problemas con ciertos comandos.
Por ejemplo, hice una prueba y parece que el DBedit no funciona en Xharbour y cuando lo elimino, el programa corre pero da ciertos errores extraños de comportamiento, así que eso me hace pensar que el pase no es tan fácil.
A ustedes le ha dado esto u otros problemas?
Muchas Gracias

raullando

Mensajes: 5
Fecha de inscripción: 21/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Problemas con dbEdit?

Mensaje  Heztevan el Vie Nov 21, 2008 6:23 pm

Hola Raul.

En mi experiencia te comento que los sistemas que ya tengo compilados y ejecutandose con xHarbour hago varias llamadas a dbEdit, y no me presentó grandes problemas, el unico detalle que te puedo confirmar es que al iniciar el browse solo dibujaba el marco, parpadeaba y se regresaba (no se quedaba dentro de dbEdit) no se si este sea el problema que tienes, lo que yo hice para corregir esto fue modificar la funcion de captura de teclas (dbfunc, de los parametros) eliminé la que usaba con clipper y la reemplace por una basica, de hecho la tome de los ejemplos del dbEdit.

Espero que esto te sea de ayuda.

Saludos.

Heztevan

Mensajes: 9
Fecha de inscripción: 20/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

compilar varios prgs xharbour

Mensaje  byrpa el Vie Nov 21, 2008 10:02 pm

Pues que bueno que podamos compartir nuestras opiniones, no hace mucho tiempo empece a tratar de cambiarme a xharbour, pero he logrado compilar solo programas pequeños, los meto todo en un solo archivo prg, ahora cuando intento compilar varios prg, si se me traban las carretas, he estado probando con el hbmake que trae el propio xharbour, pero no he tenido exito, con el link de objeto persistente, cuando trato de bajar el xedit me da un error, al parecer es del servidor donde se encuentra el archivo, lo baje de la propia pagina de xailer, pero no da las mismas opciones, asi que, tengo que seguir intentando con los bat y el hbmake, si alguien tiene el xedit seria fabuloso que lo pusieran para los que aun no lo tenemos, o alguna otra forma para compilar varios prgs.

gracias a todos por contestar.

Very Happy

PD: en realidad he buscado por todos lados.

byrpa

Mensajes: 63
Fecha de inscripción: 19/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

compilar varios programas

Mensaje  raullando el Sáb Nov 22, 2008 12:15 am

Para el amigo Byrpa, si quieres que te ayude envíame un correo a raullando@yahoo.com.ar. Avísame por este medio cuando me has enviado el correo

Bueno, hice paso a paso lo que el administrador indica y cuando ejecuto el xcompile.bat aparece una serie de mensajes:
Compiling...
xHarbour Compiler build 1.0.0 (SimpLex)
Copyright 1999-2007, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'hola.prg' and generating preprocessed output to 'hola.ppo'...

Lines 7, Functions/Procedures 1
Generating C source output to 'hola.c'...
Done.
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
hola.c:
Error E2209 c:\xharbour\include\hbvmpub.h 63: Unable to open include file 'assert.h'
Error E2209 c:\xharbour\include\hbdefs.h 58: Unable to open include file 'stdarg.h'
Error E2209 c:\xharbour\include\hbdefs.h 59: Unable to open include file 'stdio.h'
Error E2209 c:\xharbour\include\hbdefs.h 60: Unable to open include file 'stdlib.h'
Error E2209 c:\xharbour\include\hbdefs.h 61: Unable to open include file 'string.h'
Error E2209 c:\xharbour\include\hbsetup.h 61: Unable to open include file 'limits.h'
Error E2188 c:\xharbour\include\hbdefs.h 454: Expression syntax
Error E2257 c:\xharbour\include\hbdefs.h 476: , expected
Error E2139 c:\xharbour\include\hbvmpub.h 268: Declaration missing ;
Error E2141 c:\xharbour\include\hbapi.h 596: Declaration syntax error
Error E2451 hola.c 29: Undefined symbol 'NULL'
Error E2141 hola.c 29: Declaration syntax error
Error E2190 hola.c 29: Unexpected }
Error E2190 hola.c 29: Unexpected }
Error E2040 hola.c 29: Declaration terminated incorrectly
Error E2190 hola.c 37: Unexpected }
Error E2190 hola.c 37: Unexpected }
Error E2109 hola.c 37: Not an allowed type in function hb_vm_SymbolInit_HOLA
*** 18 errors in Compile ***
*
Linking...
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Fatal: Unable to open file 'C0W32.OBJ'

Busqué algunos archivos como el assert.h y no existe. Que estoy haciendo mal?
Instalé los 2 programas en los directorios por default: c:\xharbour y c:\borland

Saludos

raullando

Mensajes: 5
Fecha de inscripción: 21/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Para los interesados en obtener el xEdit2

Mensaje  Heztevan el Sáb Nov 22, 2008 11:09 am

Hola a todos...

Si estan teniendo problemas para encontrar el xEdit, para seguir las instrucciones de Objeto Persistente, les cuento que yo tambien pasé por lo mismo y hasta quedó huella de mi frustración en la cadena de posts en el mismo blog. pero finalmente lo conseguí y ya he llevado a buen termino varias migraciones de código clipper compilado con xHarbour.

A quienes esten interesados en probar con el xEdit pero no han podido conseguirlo, yo se los puedo enviar solo manden un correo a nodal.esteban@ymail.com com gusto les hago llegar el archivo, y de verdad que siguiendo las instrucciones de René Flores en Objeto Persistente verán resultados concretos, en mi opinión no hay mejor guia de inicio rápido para Harbour que esta.

Saludos y éxito a todos.

Heztevan

Mensajes: 9
Fecha de inscripción: 20/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

primer programa

Mensaje  raullando el Lun Nov 24, 2008 10:56 pm

Muchas Gracias, Esteban!!!
Ya lo hice, me dió el error del dbzip.lib, lo elimine de las librerías y me corrió al instante....por fin!!!
Ahora tengo otras dudas, por ejemplo, quiero activar el debug como en clipper, pero la opción F7 o F4 no hacen nada y por ejemplo si trato de utilizarlo en este mismo ejemplo me aparece la pantalla negra pidiendo el nombre(el read del get), y no veo las instrucciones que están antes de eso, ni las que están después, pero me imagino que tiene que poderse ya que vienen las opciones, como haces tú?

Por otra parte, intenté con una aplicación que tengo(la más sencilla de todas) , hice lo que venía en el objeto persistente para cuando son muchos prgs, al compilar aparecen cientos de warnings de ambigous reference, y luego 8 errores pertenecientes a ciertas funciones de algunos programas:
del extend.prg: __totbrows, __totbcolu, fieldwbloc, de clipper:__toget, __color y del blinker: blierrnum, blierrprm y blicalnum, así que opté por eliminar las líneas que hacían referencia a ellos, para ver que pasaba y ya no me da errores, solamente los warnings, el problema es que cuando se ejecuta sale la pantalla negra y desaparece, de igual forma si copio el ejecutable a donde están los archivos y lo ejecuto desde la pantalla del DOS directamente, aparece y desaparece y me deja-como decimos aquí- viendo para el ciprés....
Pienso que si pudiera correr el debug podría por lo menos ver que está haciendo, pero como no puedo hacer ni eso, ya te imaginarás como me siento.....
Puede ser que el error venga de que no sabe cual es el prg principal, sin embargo, hice lo que dice en la página: al principal le puse a la funcion principal function main y puse el prg que se llama diferente, dentro de propiedades del proyecto como el prg principal, pienso que puede ser esto, por que si le pongo el get-read a la function main, tampoco me lo hace.

raullando

Mensajes: 5
Fecha de inscripción: 21/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Compilar con xEdit

Mensaje  Heztevan el Mar Nov 25, 2008 11:12 am

Hola,

La verdad no he usado el debug con el xEdit (espero no llegar a necesitarlo) si quieres ver donde se queda el programa, en la carpeta donde los ejecutas harbour crea el archivo "error.log" ahi te guarda los mensajes de error y el ambiente del programa. Ahora, si el problema es que no reconoce el PRG principal lo puedes obligar, en la carpeta del proyecto busca y abre con un editor de texto (notepad) los archivos con extension .xpj (en la seccion [Desktop]) y .xdt (en la seccion [Files]) asegurate que el PRG principal quede en el numero uno de la lista de programas, asi te aseguras que el PRG principal (Main()) tome el lugar que le corresponde.

Saludos.

Heztevan

Mensajes: 9
Fecha de inscripción: 20/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

primer programa

Mensaje  raullando el Mar Nov 25, 2008 9:21 pm

bueno, luego de hacer la modificación en el archivo .xpj, ahora sí el compilador sabe cual es el primer programa a ejecutar, lo malo es que yo esperaba algo más limpio en la conversión, pero por ejemplo en la pantalla principal que existe una rutina para pedir la clave, no se ve absolutamente nada, así que siguiendo el instinto, le escribo la misma y entonces entra a otra pantalla donde da un mensaje de: Unrecoverable error 9003: "Too many recursive error handler calls", me imagino por lo que me han dicho que el problema es el dbedit, así que quitó el dbedit(esperando luego si esto sirve, hacer la rutina a pie que simule un dbedit) y ahora si entra al menú principal, donde aunque es un prompt (achoice) en este ejecutable no logro ver en que opción estoy, pero como tengo una descripción al moverme, entro a cualquiera de las opciones identificándolas por esta descripción pero me vuelve a tirar el mismo mensaje "Too many...". Así que me imagino que esto se debe a que tampoco la función achoice es compatible, por lo que antepongo la pantalla más simple solo para ver si corre, y compilo nuevamente, cruzo los dedos, y aunque si me entra a dicha pantalla, en cuanto le doy enter, vuelve a tirar el mismo mensaje, así que me supongo que se puede deber a otro achoice que se encuentra en esta pantalla(y en todas las del sistema!!!!) que yo utilizo para desplazarme al próximo registro, al anterior, consultar, etc, así que la opción que quedaría aquí sería reconstruir practicamente la aplicación, lo que al final de cuentas quería evitarme, a menos que este haciendo algo mál o desconozca algo en todo esto.
Por otra parte, no me explico como pueden trabajar en una aplicación en Xharbour, sin tener un debugger, esto para mi sería un suicidio!!!
Cuando se da un error, uno quiere ir al fuente, ejecutar la aplicación y ver que hace el sistema paso por paso, pero sin un debug, sería imposible encontrar que es lo que hace la aplicación por dentro(no me refiero a errores de sintaxis, sino a errores de lógica, por ejemplo).
Muchas Gracias

raullando

Mensajes: 5
Fecha de inscripción: 21/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Incompatibilidad??

Mensaje  Heztevan el Miér Nov 26, 2008 5:59 pm

En mi experiencia de migracion no tuve mayores problemas, ni con el dbedit (fuera del cambio de la "user function") ni mucho menos con el achoice, la compatibilidad entre clipper y (x)harbour es al 100% (bueno al 98%, considerando personalmente el comportamiento del dbedit y de la funcion type() la cual cambie por valtype() ya que no regresa el mismo valor nulo). posiblemente el problema este en la logica de tu programa, aunque por logica te cuento que los sistemas que yo he migrado (3 hasta ahora) son muy viejos, no los hice yo y tienen una logica peor que si los hubieran hecho para dbaseII, codigo redundante, procesos ciclicos, etc. y lo unico que les hice fue quitar o cambiar los llamados a funciones de librerias externas (funcky, nanfor, etc), fuera de eso el resultado que tuve fue exactamente el mismo sistema (visual y operativamente) mas rapido obviamente, en lo visual tuve un problema con XP, la ventana que abria se perdia la posicion del cursor y mostraba parte o nada de la pantalla, pero se arreglo cambiando las propiedades de la pantalla seleccionando el tamaño correcto (80x25).

ahora Raul si te sirve, te recomiendo este link http://www.lawebdelprogramador.com/news/new.php?id=17&texto=Clipper/FiveWin para que hagas tus preguntas tecnicas, ahi me han ayudado mucho y he encontrado, sin preguntar aun, problemas solucionados anteriormente a otros usuarios que me han servido.

saludos.

Heztevan

Mensajes: 9
Fecha de inscripción: 20/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

COMPATIBILIDAD???

Mensaje  raullando el Jue Nov 27, 2008 10:19 am

Muchas Gracias, Hezteban, bueno, respiré profundo y volví a hacer algunas pruebas, ahora, lo que hice fué que me olvide de mi programa, y me puse a poner directamente el dbedit en un programa simple y el achoice y el prompt y el get y el inkey para ver que tal la compatibilidad.
Y me fué mejor de lo que pensaba, por ejemplo detecté que si se coloca un read y luego un dbedit, el sistema simplemente no reconoce el dbedit, ej:
nombre=space(40)
@1,1 say "digite su nombre" get nombre
read
use cias
vec_cta[1]="CODIGO"
vec_cta[2]="NOMBRE"
dbedit(1,10,30,80,vec_cta)

así que con solo agregar un @algo después, ya funciona!, por que? no tengo la mas mínima idea, pero así es:
nombre=space(40)
@1,1 say "digite su nombre" get nombre
read
@1,10 clear to 30,80
use cias
vec_cta[1]="CODIGO"
vec_cta[2]="NOMBRE"
dbedit(1,10,30,80,vec_cta)

y me imagino que pueden existir más cosas así, sin embargo, poco a poco se pueden ir detectando y solucionando.
Ahora el problema que tengo es lo del bendito debugger, creo que con eso, sería capaz de todo, que por cierto, encontré un enlace en:
http://objetopersistente.blogspot.com/2007/08/depurando-con-xailer.html y dice que también es posible activarlo con Xharbour, pero lo intenté y da un error al compilar:
_HB_FUN__DBGENTRY

raullando

Mensajes: 5
Fecha de inscripción: 21/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Migrar de Clipper a xHarbour Modo Consola

Mensaje  Lucho Montero el Sáb Nov 29, 2008 6:02 pm

Hola Gente:
Para compartir con ustedes, la migración que hice de mi Aplicación Comercial compuesta por 08 Módulos, de Clipper 5.2d DOS hacía xHarbour Modo Consola 32 bits ... la cosa no es tan dificil como la pintan solo que hay que detenerse a leer por lo menos un par de horas para entender los pasos a seguir ... requisito indispensable para la migración es tener los fuentes .PRG de las librerias de terceros como: Superlib.lib, Abraxas.lib, Catools.Lib, etc, pues es necesario compilar estos para obtener los nuevos .LIB pasados a 32 bits ... en el caso que no tengan los fuentes una alternativa es elaborar nuestras propias funciones para reemplazarlas ... bien en mi camino a la migración logré armar un Manual en donde indica paso a paso lo que tenemos que seguir ... encontrarán todo lo necesario en este link:

http://hosted.filefront.com/lmonterof/

Aquí encontrarán Manual para Migración, Borland, Brmake, xHarbour 1.0.0 la es una versión muy estable.

Lo bueno de todo esto, es que es totalmente gratuito.

Saludos.
Atte.
Lucho Montero.
LIMA - PERU.

Lucho Montero

Mensajes: 1
Fecha de inscripción: 29/11/2008

Ver perfil de usuario

Volver arriba Ir abajo

Para que funcione el primer ejemplo

Mensaje  Admin el Mar Dic 02, 2008 8:57 pm

Fijate que volvi a hacer el ejemplo primero y lo que hay que hacer es configurar los cfg del compilador de Borland, como lo indica en la pagina de xharbour cuando bajas el compilador. Los archivos son bcc32.cfg y ilink32.cfg que en su interior indica, en donde has guardado el compilador. Creo que es lo que falta que no lo mencione en el primer ejemplo.

Saludos.

Si alguien puede subir algo, paso a paso seria ideal para todos los que buscan como trabajar con xharbour.

Admin
Admin

Mensajes: 3
Fecha de inscripción: 23/07/2008

Ver perfil de usuario http://harbour.foroslatinos.net

Volver arriba Ir abajo

Página 1 de 2. 1, 2  Siguiente

Ver el tema anterior Ver el tema siguiente Volver arriba


Permisos de este foro:
No puedes responder a temas en este foro.