duvida sobre do while no clipper 5.3
Moderador: Moderadores
duvida sobre do while no clipper 5.3
Quando faço um do while após dar o EXIT o programa aborta... porque esta acontendo isso??
GBoxdois(270,350,610,460,"Deseja Incluir Premio ? ",;
"verda12b.fnt",15,5,1,,0,12)
aItemMenu:= {"NÆo","Sim"} // {"Sim","NÆo"}
aItemIcon:= {"pbok.bmp","pbcanc.bmp"} // {"pbok.bmp","pbcanc.bmp"}
aItemMess:= {" "," "}
OP17:= GMenuHo(26,45,0, ,aItemMenu,aItemMess, ,aItemIcon, ,12)
IF OP17 = 1
TEMPRE='N'
REST SCREEN FROM T45
EXIT // >>>>> AQUI ABORTA O EXECUTAVEL
ELSEIF OP17 = 2
TEMPRE='S'
REST SCREEN FROM T45
...
...
...
GBoxdois(270,350,610,460,"Deseja Incluir Premio ? ",;
"verda12b.fnt",15,5,1,,0,12)
aItemMenu:= {"NÆo","Sim"} // {"Sim","NÆo"}
aItemIcon:= {"pbok.bmp","pbcanc.bmp"} // {"pbok.bmp","pbcanc.bmp"}
aItemMess:= {" "," "}
OP17:= GMenuHo(26,45,0, ,aItemMenu,aItemMess, ,aItemIcon, ,12)
IF OP17 = 1
TEMPRE='N'
REST SCREEN FROM T45
EXIT // >>>>> AQUI ABORTA O EXECUTAVEL
ELSEIF OP17 = 2
TEMPRE='S'
REST SCREEN FROM T45
...
...
...
- clodoaldomonteiro
- Usuário Nível 4

- Mensagens: 821
- Registrado em: 30 Dez 2006 13:17
- Localização: Teresina-PI
- Contato:
Elias!
Você já tentou colocar Return no lugar do exit?
Você já tentou colocar Return no lugar do exit?
At. Clodoaldo Monteiro
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
Linguagens: Clipper / Harbour
Área de Atuação: Sistemas de gestão para Prefeituras Municipais
Fones: (86)3223-0653, 98859-0236
www.simplesinformatica.com.br
O que o EXIT faz é forçar a saída antecipada de um DO WHILE ou FOR/NEXT. Se depois do ENDDO ou NEXT não houver mais nada, óbvio que o comando volta pro SO.
O RETURN termina a execução da rotina que está sendo executada e volta o comando pra rotina que a chamou. Se não há essa rotina anterior, o comando volta pro SO.
O RETURN termina a execução da rotina que está sendo executada e volta o comando pra rotina que a chamou. Se não há essa rotina anterior, o comando volta pro SO.
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Pessoal...
O comando EXIT tem a função de sair de DO WHILE ou FOR NEXT e o codigo que parceiro colocou é um IF ESLSEIF ENDIF(???)
Importante não confundir as ações:
EXIT ou LOOP -> DO WHILE/ENDDO
EXIT -> FOR/NEXT
RETURN -> IF/ENDIF
Aparentemente o programa dele está abortando prq o EXIT não se enconta dentro de uma das opções citadas acima... Creio que o correto no caso seria um RETURN
O comando EXIT tem a função de sair de DO WHILE ou FOR NEXT e o codigo que parceiro colocou é um IF ESLSEIF ENDIF(???)
Importante não confundir as ações:
EXIT ou LOOP -> DO WHILE/ENDDO
EXIT -> FOR/NEXT
RETURN -> IF/ENDIF
Aparentemente o programa dele está abortando prq o EXIT não se enconta dentro de uma das opções citadas acima... Creio que o correto no caso seria um RETURN
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
LOOP para FOR/NEXT também.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Obrigado pelo apoio ...Maligno escreveu:LOOP para FOR/NEXT também.
Se vc não fez nenhuma outra resalva, devo concluir que estou certo no post anterior...
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Augusto, não é isso. Se vc colocar um EXIT fora de um DO WHILE ou FOR/NEXT, vc não consegue nem compilar. Dá Erro C2011. Como o Elias disse que o "programa aborta", então ele foi compilado e linkado.Aparentemente o programa dele está abortando prq o EXIT não se enconta dentro de uma das opções citadas acima...
O RETURN faz abandonar a rotina atual (ou o programa). E o que o Elias quer é o contrário!...Creio que o correto no caso seria um RETURN
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Tenho minhas dúvidas quanto a sua afirmativa, acredito que passaria sim na linkedição. Vc testou ?? Tem conhecimento de causa ?? hehe
Mas o fato é que ele não está usando um DO WHILE e sim um IF logo o EXIT não procede e com certeza o ERRO está aí...
Mas o fato é que ele não está usando um DO WHILE e sim um IF logo o EXIT não procede e com certeza o ERRO está aí...
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Sim, testei. Não passa nem na compilação, muito menos na linkedição.
Se existe um EXIT e o programa está rodando, é porque esse EXIT está DENTRO de um DO WHILE ou FOR/NEXT.
O Elias está mostrando só um IF/ENDIF (onde está abortando), mas este pedaço deve estar dentro de outra estrutura (eu acredito que um DO WHILE).
Se existe um EXIT e o programa está rodando, é porque esse EXIT está DENTRO de um DO WHILE ou FOR/NEXT.
O Elias está mostrando só um IF/ENDIF (onde está abortando), mas este pedaço deve estar dentro de outra estrutura (eu acredito que um DO WHILE).
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Bem... o problema é que a gente está aqui discutindo e tentando achar uma solução pro cara e ele nem se manifesta...
Nesse caso... "TE LARGUEI" !!!
Nesse caso... "TE LARGUEI" !!!
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
Nem vi o resto. Hoje estou funcionando só a meia carga. Ou menos.Augusto escreveu:Se vc não fez nenhuma outra resalva, devo concluir que estou certo no post anterior...
Essa questão do EXIT é como o Eolo falou. Não tinha me ligado, mas realmente dá erro de compilação.
Agora, o código do Elias está meio esquisito. Mas vamos pela lógica: EXIT é um comando simples. É impossível um programa normal abortar por causa dele. Portanto, se o programa realmente aborta nele, só uma coisa vai resolver o sinistro: compilar em outra máquina. A não ser que ele tenha nos passado dados errados.
[]'s
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
Maligno
---
Não respondo questões técnicas através de MP ou eMail. Não insista.
As dúvidas devem ser postadas no fórum. Desta forma, todos poderão
se beneficiar das respostas.
---
Se um dia precisar de uma transfusão de sangue você perceberá como
é importante a figura do doador. Procure o hemocentro de sua cidade e
se informe sobre a doação de sangue, plaquetas e medula óssea. Doe!
EXIT NO DO WHILE
Pessoal...
existe um do while.... e o exit é exatamente para sair deste do while.. como sempre fiz no clipper.. como estou usando o clipper 5.3.. o executavel... compilado e linkeditado.. aborta... será que as rotinas do do while devem ser feitas em um prg a parte??? .. existem dois do while dentro de um mesmo prg.. será isso!!!!!
elias
existe um do while.... e o exit é exatamente para sair deste do while.. como sempre fiz no clipper.. como estou usando o clipper 5.3.. o executavel... compilado e linkeditado.. aborta... será que as rotinas do do while devem ser feitas em um prg a parte??? .. existem dois do while dentro de um mesmo prg.. será isso!!!!!
elias
PESSOAL.. PRIMEIRAMENTE AGRADEÇO MUITO A ATENÇÃO DE TODOS... TENTEI TODAS AS ALTERNATIVAS CITADAS... E AINDA ASSIM ABORTA... VAMOS LÁ...
EXITE UM PRG MENU.. QUE CHAMA UM PRG PREMIO... NESTE PRG PREMIO EXISTE UMA PERGUNTA SE QUERO COLOCAR PREMIO.. ENTÃO COLOQUEI UM DO WHILE .. SE QUISER PREMIO.. ENTRA-SE COM OS DADOS DO PREMIO E LOGO EM SEGUIDA É FEITO UM IF.. SE ESTIVER CORRETO OS DADOS.. EXIT PARA SAIR DO DO WHILE... E QUANDO DIGO QUE OS DADOS ESTÃO OK.. ELE ABORTA O EXECUTAVEL EXATAMENTE NESTE EXIT.. ANDEI PESQUISANDO O CLIPPER 5.3 E PARECE-ME QUE OS DO WHILE TEM QUE SER FEITOS EM UM PRG A PARTE.. PROCEDE ISSO?? (DESCULPE-ME NÃO TER RESPONDIDO A TODOS ANTES.. É QUE EU NÃO ESTAVA EM CASA) ABRAÇOS A TODOS
EXITE UM PRG MENU.. QUE CHAMA UM PRG PREMIO... NESTE PRG PREMIO EXISTE UMA PERGUNTA SE QUERO COLOCAR PREMIO.. ENTÃO COLOQUEI UM DO WHILE .. SE QUISER PREMIO.. ENTRA-SE COM OS DADOS DO PREMIO E LOGO EM SEGUIDA É FEITO UM IF.. SE ESTIVER CORRETO OS DADOS.. EXIT PARA SAIR DO DO WHILE... E QUANDO DIGO QUE OS DADOS ESTÃO OK.. ELE ABORTA O EXECUTAVEL EXATAMENTE NESTE EXIT.. ANDEI PESQUISANDO O CLIPPER 5.3 E PARECE-ME QUE OS DO WHILE TEM QUE SER FEITOS EM UM PRG A PARTE.. PROCEDE ISSO?? (DESCULPE-ME NÃO TER RESPONDIDO A TODOS ANTES.. É QUE EU NÃO ESTAVA EM CASA) ABRAÇOS A TODOS
ERRO NO DO WHILE
PRIMEIRAMENTE AGRADEÇO MUITO A ATENÇÃO DE TODOS... TENTEI TODAS AS ALTERNATIVAS CITADAS... E AINDA ASSIM ABORTA... VAMOS LÁ...
EXITE UM PRG MENU.. QUE CHAMA UM PRG PREMIO... NESTE PRG PREMIO EXISTE UMA PERGUNTA SE QUERO COLOCAR PREMIO.. ENTÃO COLOQUEI UM DO WHILE .. SE QUISER PREMIO.. ENTRA-SE COM OS DADOS DO PREMIO E LOGO EM SEGUIDA É FEITO UM IF.. SE ESTIVER CORRETO OS DADOS.. EXIT PARA SAIR DO DO WHILE... E QUANDO DIGO QUE OS DADOS ESTÃO OK.. ELE ABORTA O EXECUTAVEL EXATAMENTE NESTE EXIT.. ANDEI PESQUISANDO O CLIPPER 5.3 E PARECE-ME QUE OS DO WHILE TEM QUE SER FEITOS EM UM PRG A PARTE.. PROCEDE ISSO?? (DESCULPE-ME NÃO TER RESPONDIDO A TODOS ANTES.. É QUE EU NÃO ESTAVA EM CASA) ABRAÇOS
EXITE UM PRG MENU.. QUE CHAMA UM PRG PREMIO... NESTE PRG PREMIO EXISTE UMA PERGUNTA SE QUERO COLOCAR PREMIO.. ENTÃO COLOQUEI UM DO WHILE .. SE QUISER PREMIO.. ENTRA-SE COM OS DADOS DO PREMIO E LOGO EM SEGUIDA É FEITO UM IF.. SE ESTIVER CORRETO OS DADOS.. EXIT PARA SAIR DO DO WHILE... E QUANDO DIGO QUE OS DADOS ESTÃO OK.. ELE ABORTA O EXECUTAVEL EXATAMENTE NESTE EXIT.. ANDEI PESQUISANDO O CLIPPER 5.3 E PARECE-ME QUE OS DO WHILE TEM QUE SER FEITOS EM UM PRG A PARTE.. PROCEDE ISSO?? (DESCULPE-ME NÃO TER RESPONDIDO A TODOS ANTES.. É QUE EU NÃO ESTAVA EM CASA) ABRAÇOS
- Augusto
- Usuário Nível 3

- Mensagens: 473
- Registrado em: 26 Ago 2003 17:50
- Localização: Maricá/RJ
- Contato:
Parceiro... essa afirmativa não procede. Todos os meus sistemas são em 5.3/Blinker6 e praticamente todos começam com um "DO WHILE .T." e dentro deles tem um montão de outros DO WHILE, IFs, FOR/NEXT etc, inclusive chamando "procedures" e retornando...elias escreveu:.. ANDEI PESQUISANDO O CLIPPER 5.3 E PARECE-ME QUE OS DO WHILE TEM QUE SER FEITOS EM UM PRG A PARTE.. PROCEDE ISSO??
Pelo que vc está colocando, acredito que seja somente um erro de algorítimo... Que tal vc disponibilizar o código todo para que possamos analisar melhor e te ajudar ??
:xau Fui...
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br
goulart@provsul.com.br
Faça da PROVSUL o seu Provedor de Serviços WEB
Visite: www.PROVSUL.com.br


