FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Error E0030 Syntax error "syntax error at 'LIKE'"
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Error E0030 Syntax error "syntax error at 'LIKE'"
Posted: Thu Oct 28, 2021 05:37 PM
Iniciando con HARBOUR:

Error E0030 Syntax error "syntax error at 'LIKE'"

Code (fw): Select all Collapse
// Conta do Email
FUNCTION CHECA_GET_CONTA( cEMAILNOCONTA, aGet )

   LOCAL cContaUsuario, cNomeUsuario
   LOCAL cRegEx := "^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,4})$"
   LOCAL lIsValid := .F.

   PUBLIC cNomeUsuFinal

   IF GETASYNCKEY( VK_UP )
      RETURN( .T. )
   ENDIF

   IF EMPTY( cEMAILNOCONTA )  // = a XEMAILNOCONTA

      MsgInfo( OemToAnsi( "ATEN€ÇO USUµRIO:                    " )+CRLF+ ;
               OemToAnsi( "DIGITE O NOME DA CONTA DE EMAIL.    " )+CRLF+ ;
               OemToAnsi( "Exemplo: <!-- e --><a href="mailto:contato@pleno.com.br">contato@pleno.com.br</a><!-- e -->       " ),      ;
               OemToAnsi( "EMAIL(Conta) NÇO INFORMADO. CUIDADO!" ) )

      RETURN( .F. )

   ENDIF

   #IFDEF __XHARBOUR__  //

      // if xHarbour -> Funciona perfecto. Como hago esto en HARBOUR?

      IF ( ALLTRIM( LOWER( cEMAILNOCONTA ) ) LIKE cRegEx )

         lIsValid := .T.

      ELSE

         MsgInfo( OemToAnsi( "ATEN€ÇO USUµRIO:                    " )+CRLF+ ;
                  OemToAnsi( "DIGITE UM EMAIL VÇLIDO..            " )+CRLF+ ;
                  OemToAnsi( "ESTA CONTA DE EMAIL ESTµ ERRADA..   " )+CRLF+ ;
                  OemToAnsi( "Exemplo: <!-- e --><a href="mailto:contato@pleno.com.br">contato@pleno.com.br</a><!-- e -->       " )+CRLF+ ;
                  OemToAnsi( "VOCÃ’ DIGITOU: " + ALLTRIM( cEMAILNOCONTA ) ), ;
                  OemToAnsi( "EMAIL(Conta) CONTENDO ERROS... VEJA!" ) )
      ENDIF

   #ELSE

      // if harbour -> LIKE cRegEx  No funciona, porque?

      /*
      RMAILAMB.prg(1947) Error E0030  Syntax error "syntax error at 'LIKE'"
      RMAILAMB.prg(1949) Error E0014  ELSE does not match IF
      RMAILAMB.prg(1956) Error E0010  ENDIF does not match IF
      */

   #ENDIF

   cContaUsuario := LOWER( cEMAILNOCONTA )
 
   cNomeUsuario := Substr( cContaUsuario, 1, ( AT( "@", cContaUsuario ) -1 ) ) ;
                   +SPACE(30)

   cNomeUsuFinal := cNomeUsuario

   aGet[7]:VARPUT( cNomeUsuario )
   aGet[7]:Refresh()

   aGet[7]:Disable()
   aGet[7]:Refresh()

RETURN( lIsValid )


Regards, saludos
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8515
Joined: Tue Dec 20, 2005 07:36 PM
Re: Error E0030 Syntax error &quot;syntax error at 'LIKE'&quot;
Posted: Fri Oct 29, 2021 08:12 PM
Resuelto:

Code (fw): Select all Collapse
   IF ( HB_REGEXLIKE( ALLTRIM( LOWER( cEMAILNOCONTA ) ), cRegEx )  )


REgards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341

Continue the discussion