Página 2 de 2

erro no do while

Enviado: 26 Nov 2007 14:56
por elias
estou usando a llibg..... do clipper 5.3..... será isso?? eu sempre usei o clipper.. e sempre usei do while... aos montes.. mas usando esta biblioteca... nao consigo passar desta parte....

Enviado: 26 Nov 2007 14:58
por elias
EU USO O EXOSPACE

Enviado: 26 Nov 2007 15:18
por Augusto
elias escreveu:EU USO O EXOSPACE
É... parceiro... essa é uma discusão sem tamanho aqui no fórum mas... parece que a maioria é a favor do BLINKER, eu nem posso falar do EXOSPACE prq nunca usei... aliás a LLIBG tmb não...
Vamos ver o que os demais parceiros tem a dizer...

Enviado: 26 Nov 2007 15:47
por alaminojunior
Veja bem meu caro, como o nosso colega Augusto bem disse, isso pode ser sim um problema de algorítmo. Desculpe, mas vc sabe o que é algorítmo né ? Enfim, uma sequencia lógica da execução do seu sistema.

Como vc disse existe um PRG MENU que chama uma rotina PREMIO que por sua vez, possui um DO WHILE onde então entra-se com os dados.
Se os dados conferem vc emite um EXIT, onde o sistema aborta.
Acredito que o problema possa estar mais para tras, na rotina MENU.
Verifique se ela proporciona a continuidade da aplicação depois da rotina PREMIO.

Enviado: 26 Nov 2007 16:35
por elias
OK.. irei efetuar todas as verificações.. e a noite entro dizendo algo.. muito obrigado...

Enviado: 26 Nov 2007 23:40
por rochinha
Amiguinhos

Não só acho, mas tenho toda certeza que EXIT tem o mesmo funcionamento de QUIT quando o mesmo esta fora de um DO/WHILE ou IF/ENDIF.

Vejam um pequeno exemplo de codigo Clipper em um antigo sistema meu:

Código: Selecionar todos

   ELSEIF MENU_P = 7 - M->TIRA_MENU
      menu:ADD( "~Fim de execucao" )
      IF menu:RODA() = 1
         IF PERGUNTA( "Confirma o encerramento ?" ) = "S"
            //
            SETMODE(25,80)
            F_ERASE( '*.$TX' )
            F_ERASE( '*.$AQ' )
            F_ERASE( '*.BAK' )
            F_ERASE( '*.PRN' )
            F_ERASE( '*.TMP' )
            F_ERASE( '*.$$$' )
            F_ERASE( '??8*.DBF' )
            F_ERASE( '???8*.DBF' )
            F_ERASE( '??9*.DBF' )
            F_ERASE( '???9*.DBF' )
            F_ERASE( '_*.NTX' )                                            
            F_ERASE( '_*.CDX' )
            SESSAO( 'OFF' )
            SET COLOR TO
            IF TIME() > "12:00:00" .AND. TIME() < "13:00:00"
               BEEP();BEEP();BEEP()
               RODABACKUP()
            ENDIF
            EXIT
         ENDIF
      ENDIF
   ENDIF
Talvez seu caso, ao invés de usar EXIT direcione para uma procedure ou função que deveria ser executada depois ou ao .PRG principal.

Enviado: 27 Nov 2007 00:11
por Maligno
Compilaste?

Enviado: 27 Nov 2007 07:05
por Eolo
Rochinha, se esse seu exemplo NÃO estiver dentro de um DO WHILE, não passa nem na compilação.

Clipper: "Error C2011 EXIT statemente with no loop in sight"
XHarbour: "Error E0018 EIT statemente with no loop in sight"

Só cabe EXIT onde tem LOOP.

Enviado: 27 Nov 2007 12:49
por rochinha
Amiguinho

Valew, acho que não é só os cabelos que tão perdendo cor, hehehe!

Enviado: 27 Nov 2007 18:33
por Eolo
Cabelos perdendo cor?
Cara, pior comigo, que já perdi os cabelos...
eh eh eh
Abraço.

Enviado: 27 Nov 2007 19:01
por Luciano Bonfim
amigo

posta os fontes que fica mais fácil analisarmos...

Enviado: 27 Nov 2007 19:15
por Augusto
Luciano Bonfim escreveu:posta os fontes que fica mais fácil analisarmos...
Estou dizendo isso desde o inicio desse tópico... mas acho que ele está receioso de fazer isso... enfim...

Enviado: 27 Nov 2007 22:17
por elias
Olá amigos...
estou entrando apenas agora na net.. li agora as respostas.. todos vcs são pessoas nota 10. como sou meio novato no clipper.. faço umas barbeiragens de vez em qdo.... descobri que coloquei o exit fora do while.... e isso ocasionava o erro. peço que me desculpem. orbigado a todos que escreveram e mesmo não sabendo muito .. sempre que puder irei ajudar da melhor forma possivel.,, abraços a todos...