Migrar a Harbour - Errores del compilador

Migrar a Harbour - Errores del compilador

Postby Verhoven » Tue Dec 16, 2014 1:44 pm

La compilación en xHarbour va bien.
Pero el mismo código fuento en Harbour no pasa.
Les ruego una ayuda porque no los entiendo. Los errores son los siguientes:

Error E0030 Syntax error "syntax error at '|'"
Código:
Code: Select all  Expand view
 cPathDestino:=cGetDir( "Seleccione Carpeta",cPathDestino,,;
                         "Seleccione la carpeta donde copiar las novedades para ordenador CENTRAL", BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN + BIF_USENEWUI + BIF_NONEWFOLDERBUTTON )
 


Error E0030 Syntax error "syntax error at ','"
Código:
Code: Select all  Expand view
REDEFINE BUTTON oBtnDel ID 426 OF oDlg MESSAGE 'Borra último dígito';
             ACTION (::cUltima:='CE'            ,;
                     iif(::cUltimaOp='=' .or. ::cUltimaOp='AP' .or. ::cUltimaOp='AE',(::cUltimaOp:='',::nResult:=0,aadd( ::aRolloCalc, {' ',' '} ), oBrw:gobottom(),oBrw:refresh()),NIL),;
                     iif(nGet<>0,(              ,;
                     cGet:=LEFT(cGet,len(cget)-1),;
                     nGet:=val(cGet)),NIL)       ,;
                     oGet:SetText(cGet)         ,;
                     oBtnIgual:Setfocus()       ,;
                     sysrefresh() ) UPDATE
Verhoven
 
Posts: 520
Joined: Sun Oct 09, 2005 7:23 pm

Re: Migrar a Harbour - Errores del compilador

Postby Carles » Tue Dec 16, 2014 1:52 pm

Prueba
Code: Select all  Expand view
                    iif(nGet<>0,(              ;  


en lugar de
Code: Select all  Expand view
                    iif(nGet<>0,(              ,;
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1134
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: Migrar a Harbour - Errores del compilador

Postby Verhoven » Tue Dec 16, 2014 4:25 pm

Hola Carles,
Entiendo que la solución que me dices no puede ser, pues la coma lo que hace es separar las distintas variables de una función y si la quito va a asignar a una variable de la función el valor que en realidad se quiere pasar a otra.
Saludos.
Verhoven
 
Posts: 520
Joined: Sun Oct 09, 2005 7:23 pm

Re: Migrar a Harbour - Errores del compilador

Postby Verhoven » Tue Dec 16, 2014 4:39 pm

El suguiente código también da el error: Error E0030 Syntax error "syntax error at ','"

Code: Select all  Expand view
 ACTIVATE DIALOG oDlg CENTER ON INIT(iif(lBtnProd[1] .and. lEligeMa,NIL,oBtnProd1:hide()),;
                                      iif(lBtnProd[2] .and. lEligeMa,NIL,oBtnProd2:hide()),;
                                      iif(lBtnProd[3] .and. lEligeMa,NIL,oBtnProd3:hide()),;
                                      iif(lBtnProd[4] .and. lEligeMa,NIL,oBtnProd4:hide()),;
                                      oBtnCancelar:hide() )
Verhoven
 
Posts: 520
Joined: Sun Oct 09, 2005 7:23 pm

Re: Migrar a Harbour - Errores del compilador

Postby Biel EA6DD » Tue Dec 16, 2014 4:47 pm

Yo creo que Carles tiene razón.
Code: Select all  Expand view

iif(nGet<>0,(              ,;
                     cGet:=LEFT(cGet,len(cget)-1),;
                     nGet:=val(cGet)),NIL)       ,;
 

La coma sobra, no separa parámetros, separa acciones a realizar cuano nGet<>0
iif(nGet<>0,( , cGet:=LEFT(cGet,len(cget)-1), nGet:=val(cGet) ) , NIL)

Este a mi no me da error.
Verhoven wrote:El suguiente código también da el error: Error E0030 Syntax error "syntax error at ','"

Code: Select all  Expand view
 ACTIVATE DIALOG oDlg CENTER ON INIT(iif(lBtnProd[1] .and. lEligeMa,NIL,oBtnProd1:hide()),;
                                      iif(lBtnProd[2] .and. lEligeMa,NIL,oBtnProd2:hide()),;
                                      iif(lBtnProd[3] .and. lEligeMa,NIL,oBtnProd3:hide()),;
                                      iif(lBtnProd[4] .and. lEligeMa,NIL,oBtnProd4:hide()),;
                                      oBtnCancelar:hide() )
Last edited by Biel EA6DD on Tue Dec 16, 2014 4:53 pm, edited 1 time in total.
Saludos desde Mallorca
Biel Maimó
http://bielsys.blogspot.com/
User avatar
Biel EA6DD
 
Posts: 682
Joined: Tue Feb 14, 2006 9:48 am
Location: Mallorca

Re: Migrar a Harbour - Errores del compilador

Postby Verhoven » Tue Dec 16, 2014 4:49 pm

Ya he conseguido eliminar el error de las ",". Harbour es más extricto que xHarbour con este asunto. No se puede poner una secuencia de instrucciones separadas por comas y que entre dos de ellas no se ponga nada.

Pero no logro quitar el error: Syntax error "syntax error at '|'" del código:
Code: Select all  Expand view
   cPathDestino:=cGetDir( "Seleccione Carpeta","C:\",,;
                           "
Seleccione la carpeta donde hacer la copia de seguridad", BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN + BIF_USENEWUI + BIF_NONEWFOLDERBUTTON )
Verhoven
 
Posts: 520
Joined: Sun Oct 09, 2005 7:23 pm

Re: Migrar a Harbour - Errores del compilador

Postby karinha » Tue Dec 16, 2014 5:31 pm

Intenta ahora...

Code: Select all  Expand view

#include "FiveWin.ch"

#define BIF_NONEWFOLDERBUTTON  0x200
#define BIF_RETURNONLYFSDIRS   0x0001
#define BIF_DONTGOBELOWDOMAIN  0x0002
#define BIF_STATUSTEXT         0x0004
#define BIF_RETURNFSANCESTORS  0x0008
#define BIF_EDITBOX            0x0010
#define BIF_VALIDATE           0x0020
#define BIF_NEWDIALOGSTYLE     0x0040
#define BIF_USENEWUI  (BIF_NEWDIALOGSTYLE | BIF_EDITBOX)
#define BIF_BROWSEINCLUDEURLS  0x0080
#define BIF_BROWSEFORCOMPUTER  0x1000
#define BIF_BROWSEFORPRINTER   0x2000
#define BIF_BROWSEINCLUDEFILES 0x4000
#define BIF_SHAREABLE          0x8000
#define MAX_PATH 260

FUNCTION Main()

   LOCAL cTitle, cPath, cCarpDest, cPathDest

   cTitle    := "Seleccione Carpeta"

   IF FWVERSION = "FWHX 13.06"
      cPath := GETCURDIR()
   ELSE
      cPath := CURDRIVE() + ":\" + GETCURDIR()
   ENDIF

   cCarpDest := "
Seleccione la carpeta donde copiar las novedades"

   cPathDest := cGetDir( cTitle, cPath,, cCarpDest,            ;
                BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN + ;
                BIF_USENEWUI + BIF_NONEWFOLDERBUTTON )

   IF .NOT. EMPTY( cPathDest )
      ? cPathDest
   ENDIF

RETURN NIL


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Migrar a Harbour - Errores del compilador

Postby Verhoven » Tue Dec 16, 2014 7:26 pm

Los defines ya los tenía incluidos en el programa. He probado el ejemplo tal y como me lo has enviado y arroja el mismo error.

cgetdir.prg(36) Error E0030 Syntax error "syntax error at '|'"

Ese mismo código en xHarbour no da el error.
Verhoven
 
Posts: 520
Joined: Sun Oct 09, 2005 7:23 pm

Re: Migrar a Harbour - Errores del compilador

Postby karinha » Tue Dec 16, 2014 7:41 pm

Porfa, cambia cGetdir() por cGetFile() si dá el mismo error...

No te falta ninguna LIB de Harbour?

http://wiki.fivetechsoft.com/doku.php?id=fivewin_function_cgetdir

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7804
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: Migrar a Harbour - Errores del compilador

Postby Verhoven » Tue Dec 16, 2014 7:57 pm

Arroja el mismo error.
Uso el propio Buildh.bat que viene con la versión FWH32 14.11 y Harbour 3.2.0dev (r1406271520).
Copio el Buildh.bat que trae FW al que añado solamente una línea para incluir la librería TWBRWX32_H.lib (Browse de Hernan):

Code: Select all  Expand view
@ECHO OFF
CLS
ECHO ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
ECHO ³ FiveWin for Harbour 14.11 - Nov.  2014          Harbour development power  ³Ü
ECHO ³ (c) FiveTech, 1993-2014   for Microsoft Windows 9X/NT/200X/ME/XP/Vista/7/8 ³Û
ECHO ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙÛ
ECHO ÿ ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß

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

if "%FWDIR%" == "" set FWDIR=C:\fwh
if "%HBDIR%" == "" set HBDIR=c:\harbour
rem if "%2" == "/b" set GT=gtwin
rem if not "%2" == "/b" set GT=gtgui
set GT=gtgui

ECHO Compiling...

set hdir=%HBDIR%
set hdirl=%hdir%\lib
set fwh=%FWDIR%
if exist c:\bcc582 set bcdir=c:\bcc582
rem if exist c:\bcc64 set bcdir=c:\bcc64

%hdir%\bin\harbour %1 /n /i%fwh%\include;%hdir%\include /p %2 %3 > comp.log 2> warnings.log
if errorlevel 1 goto COMPILEERRORS
@type comp.log
@type warnings.log

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

IF EXIST %1.rc %bcdir%\bin\brc32 -r -I%bcdir%\include -I%bcdir%\include\windows\sdk %1
rem IF EXIST %1.rc %vcdir%\bin\rc -r -d__FLAT__ %1

echo %bcdir%\lib\c0w32.obj + > b32.bc
echo %1.obj, + >> b32.bc
echo %1.exe, + >> b32.bc
echo %1.map, + >> b32.bc

rem ­ Hay que poner delante las que sustituyen a las de FW, o mejor dicho
rem    el enlazador pone en el exe las que primero encuentra !
echo C:\CLIWIN\TBROWSE17b\LIB\TWBRWX32_H.lib + >> b32.bc

echo %fwh%\lib\FiveH.lib %fwh%\lib\FiveHC.lib %fwh%\lib\libmysql.lib %fwh%\lib\dolphin.lib + >> b32.bc
echo %hdirl%\hbwin.lib + >> b32.bc
echo %hdirl%\%GT%.lib + >> b32.bc
echo %hdirl%\hbrtl.lib + >> b32.bc
echo %hdirl%\hbvm.lib + >> b32.bc
echo %hdirl%\hblang.lib + >> b32.bc
echo %hdirl%\hbmacro.lib + >> b32.bc
echo %hdirl%\hbrdd.lib + >> b32.bc
echo %hdirl%\rddntx.lib + >> b32.bc
echo %hdirl%\rddcdx.lib + >> b32.bc
echo %hdirl%\rddfpt.lib + >> b32.bc
echo %hdirl%\hbsix.lib + >> b32.bc
echo %hdirl%\hbdebug.lib + >> b32.bc
echo %hdirl%\hbcommon.lib + >> b32.bc
echo %hdirl%\hbpp.lib + >> b32.bc
echo %hdirl%\hbcpage.lib + >> b32.bc
echo %hdirl%\hbcplr.lib + >> b32.bc
echo %hdirl%\hbct.lib + >> b32.bc
echo %hdirl%\hbpcre.lib + >> b32.bc
echo %hdirl%\xhb.lib + >> b32.bc
echo %hdirl%\hbziparc.lib + >> b32.bc
echo %hdirl%\hbmzip.lib + >> b32.bc
echo %hdirl%\hbzlib.lib + >> b32.bc
echo %hdirl%\minizip.lib + >> b32.bc
echo %hdirl%\png.lib + >> b32.bc
echo %hdirl%\hbcurl.lib + >> b32.bc
echo %hdirl%\hbusrrdd.lib + >> b32.bc

echo %hdirl%\hbcomm.lib + >> b32.bc

echo %fwh%\lib\libcurl.lib + >> b32.bc

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

rem echo %fwh%\lib\dolphin.lib + >> b32.bc
rem echo %fwh%\lib\libmysql.lib + >> b32.bc
 
echo %bcdir%\lib\cw32.lib + >> b32.bc
echo %bcdir%\lib\uuid.lib + >> b32.bc
echo %bcdir%\lib\import32.lib + >> b32.bc
echo %bcdir%\lib\wininet.lib + >> b32.bc
echo %bcdir%\lib\ws2_32.lib + >> b32.bc
echo %bcdir%\lib\psdk\odbc32.lib + >> b32.bc
echo %bcdir%\lib\psdk\nddeapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\iphlpapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\msimg32.lib + >> b32.bc
echo %bcdir%\lib\psdk\psapi.lib + >> b32.bc
echo %bcdir%\lib\psdk\rasapi32.lib + >> b32.bc
echo %bcdir%\lib\psdk\gdiplus.lib + >> b32.bc
echo %bcdir%\lib\psdk\shell32.lib, >> b32.bc

IF EXIST %1.res echo %1.res >> b32.bc
if %GT% == gtwin %bcdir%\bin\ilink32 -Gn -Tpe -s @b32.bc
IF ERRORLEVEL 1 GOTO LINKERROR
if %GT% == gtgui %bcdir%\bin\ilink32 -Gn -aa -Tpe -s @b32.bc
IF ERRORLEVEL 1 GOTO LINKERROR
ECHO * Application successfully built *
rem signtool.exe sign /fd sha256 %1.exe
%1
GOTO EXIT
ECHO

rem delete temporary files
@del %1.c

:COMPILEERRORS
@type comp.log
@type warnings.log
ECHO * Compile errors *
GOTO EXIT

:LINKERROR
ECHO * 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
Verhoven
 
Posts: 520
Joined: Sun Oct 09, 2005 7:23 pm

Re: Migrar a Harbour - Errores del compilador

Postby Antonio Linares » Tue Dec 16, 2014 8:18 pm

El error viene de esta línea:

#define BIF_USENEWUI (BIF_NEWDIALOGSTYLE | BIF_EDITBOX)

hay que cambiarla por:

#define BIF_USENEWUI nOr( BIF_NEWDIALOGSTYLE, BIF_EDITBOX )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Migrar a Harbour - Errores del compilador

Postby Verhoven » Tue Dec 16, 2014 8:30 pm

Con lo que dice Antonio queda arreglado ese error.

Pero ahora me da otros nuevos en el linkado:

call to function hb_itemRelease with no prototipe
call to function hb_itemReturn with no prototipe
call to function hb_itemArrayNew with no prototipe
call to function hb_itemPutC with no prototipe

unresolved external __HB_FUN_DBSKIPPER
Verhoven
 
Posts: 520
Joined: Sun Oct 09, 2005 7:23 pm

Re: Migrar a Harbour - Errores del compilador

Postby Antonio Linares » Tue Dec 16, 2014 8:58 pm

Añade este fichero de cabecera:

#include <hbapiitm.h>

Y prueba a añadir esta función:

function DBSKIPPER( x )

return __DBSkipper( x )
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Re: Migrar a Harbour - Errores del compilador

Postby Verhoven » Tue Dec 16, 2014 9:18 pm

Antonio he añadido ese archivo de cabecera pero me dice el compilador que no encuentra el archivo include stdarg.h
Verhoven
 
Posts: 520
Joined: Sun Oct 09, 2005 7:23 pm

Re: Migrar a Harbour - Errores del compilador

Postby Antonio Linares » Tue Dec 16, 2014 9:23 pm

Tienes Borland configurado como se explica aqui ?

viewtopic.php?f=17&t=13098
regards, saludos

Antonio Linares
www.fivetechsoft.com
User avatar
Antonio Linares
Site Admin
 
Posts: 42080
Joined: Thu Oct 06, 2005 5:47 pm
Location: Spain

Next

Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 56 guests