Erro de sintax.
Moderador: Moderadores
-
johannstr
- Usuário Nível 1

- Mensagens: 17
- Registrado em: 23 Jan 2012 11:11
- Localização: Ijuí, Rio Grande Do Sul
Erro de sintax.
Estou migrando um programa em clipper para o windows em c, só que sou leigo nessa linguagem, gostaria q alguem me ajudasse com isto. Acredito q este seja a parte do forum errada para isto, mas estou usando o xharbour para a migração.
http://imageshack.us/photo/my-images/51/sintax.png/
Agradeço desde já.
http://imageshack.us/photo/my-images/51/sintax.png/
Agradeço desde já.
Erro de sintax.
Johan, fica mais fácil se vc postar o código da aplicação diretamente no post..
De seu ctrl+c la no trecho da sua apliação e depois de o ctrl+v aqui no post , dentro das tags code:
De seu ctrl+c la no trecho da sua apliação e depois de o ctrl+v aqui no post , dentro das tags code:
Código: Selecionar todos
codigo do programa .... lugab
-
johannstr
- Usuário Nível 1

- Mensagens: 17
- Registrado em: 23 Jan 2012 11:11
- Localização: Ijuí, Rio Grande Do Sul
Erro de sintax.
Código: Selecionar todos
FUNCTION CREGRAF1()
* *************************************************** *
* SISTEMA ............... C.E.C - FASHION *
* PROGRAMA .............. CREGRAF1 *
* FUNCAO ................ ANALISE DE PRESTACOES *
* DATA CRIACAO .......... 27/03/95 *
* DATA ULT. ALTERACAO ... 27/03/95 *
* AUTOR ................. JBSC *
* *************************************************** *
SET SCORE OFF
SET DATE BRIT
SET DELE ON
SET WRAP ON
SET PROC TO CREPROC
SET COLOR TO W/B
* ....
IF NET_USE("A","CREPREST",.F.,10)
NREC=LASTREC()
ENDIF
* .....
PRIVATE ANO,CONTREC
DECLARE aTTPREST[12],aTTPAGO[12],aTTABERTO[12]
*.... rotina principal
ANO=YEAR(DATE())-1900
STORE 0 TO CONTREC
AFILL(aTTPREST,0)
AFILL(aTTPAGO,0)
AFILL(aTTABERTO,0)
* ....
@ 10,20 CLEAR TO 14,60
@ 10,20 TO 14,60 DOUBLE
@ 11,21 SAY "Ano:" GET ANO PICT "99" VALID !EMPTY(ANO)
READ
IF LASTKEY()=27
CLOSE ALL
RETU
ENDIF
ANO=ANO+1900
@ 12,21 SAY "Total de registros: "+TRANS(NREC,"@E 999,999")
* ....
SELE A
GO TOP
DO WHILE !EOF()
* .... Valor a receber para cada mes/ano
IF YEAR(PR_DTPREST)=ANO
aTTPREST[MONTH(A->PR_DTPREST)]=aTTPREST[MONTH(A->PR_DTPREST)]+A->PR_VLPREST
ENDIF
* .... Valor das prestacoes pagas cada mes/ano
IF YEAR(PR_DTPGPRE)=ANO
aTTPAGO[MONTH(A->PR_DTPGPRE)]=aTTPAGO[MONTH(A->PR_DTPGPRE)]+A->PR_VLPAGO
ENDIF
* .... Valor das prestacoes abertas cada mes/ano
IF YEAR(PR_DTPREST)=ANO .AND. (A->PR_SITU="A")
aTTABERTO[MONTH(A->PR_DTPREST)]=aTTABERTO[MONTH(A->PR_DTPREST)]+A->PR_VLPREST
ENDIF
SELE A
SKIP
CONTREC=CONTREC+1
@ 13,21 SAY "Total de lidos ...: "+TRANS(CONTREC,"@E 999,999")
ENDDO
* .... Monta grafico de barras
FUNCTION BC_INIC()
FUNCTION BC_GABJAN()
FUNCTION BC_GDGRAF(23)
titulo = {"Analise de Prestacoes", "Fashion Center"}
meses = {"jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"}
legenda = {"Total", "Pagas", "Abertas"}
FUNCTION BC_GBARRA(attprest, attpago, attaberto, meses, legenda, titulo)
inkey(0)
FUNCTION BC_FIM()
CLOSE ALL
RETU- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7929
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Erro de sintax.
Ola!
Olha o erro:
Lá no xDev está avisando a mesma coisa.
Saudações,
Itamar M. Lins Jr.
Olha o erro:
Tire esse 23 ai.FUNCTION BC_GDGRAF(23)
Lá no xDev está avisando a mesma coisa.
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
-
johannstr
- Usuário Nível 1

- Mensagens: 17
- Registrado em: 23 Jan 2012 11:11
- Localização: Ijuí, Rio Grande Do Sul
Erro de sintax.
Já havia retirado em outras tentavias mas ele faz parte no clipper, mas em c já não sei, mas acabei tirando a parte de graficos que me falaram q não precisava, obrigado pela ajuda.
-
johannstr
- Usuário Nível 1

- Mensagens: 17
- Registrado em: 23 Jan 2012 11:11
- Localização: Ijuí, Rio Grande Do Sul
Erro de sintax.
Já havia retirado em outras tentativas mas ele faz parte no clipper, mas em c já não sei, mas acabei tirando a parte de graficos que me falaram q não precisava, obrigado pela ajuda.
- rochinha
- Administrador

- Mensagens: 4664
- Registrado em: 18 Ago 2003 20:43
- Localização: São Paulo - Brasil
- Contato:
Erro de sintax.
Amiguinho,
Apesar de algumas linguagens não seguirem as mesmas convenções é uma boa prática programar na linguagem a que se dedica na forma correta e didática.
Apesar de não ser necessário terminar uma função ou procedimento, ou escrever partes do comando, eu no meu entender acho feio e parece um trabalho preguiçoso.
Como voce esta aprendendo esta linguagem, seria bom para o seu próprio entender que uma função ou procedimento pode possuir um terminador:
Veja a correção didática:
Ao colocar parametros voce os definirá com algum nome:
Se sua função não retornar nenhum valor que seja relevante voce pode terminá-la com algum valor nulo ou vazio:
Se sua função precisar retornar algum valor para apresentação ou uso posterior:
Voce poderá usar em seu código:
Ou:
Se sua função precisar retornar algum valor lógico ou executar uma critica:
ou:
ou:
Acostume-se a escrever os comandos em seu formato completo, isto mostra zelo e disciplina, pois as abreviações por mais que pareçam codificação avançada, aos olhos de quem avalia demonstram preguiça.
Com o que foi apresentado voce não acha que seu código ficaria mais bonito?
Apesar de algumas linguagens não seguirem as mesmas convenções é uma boa prática programar na linguagem a que se dedica na forma correta e didática.
Apesar de não ser necessário terminar uma função ou procedimento, ou escrever partes do comando, eu no meu entender acho feio e parece um trabalho preguiçoso.
Como voce esta aprendendo esta linguagem, seria bom para o seu próprio entender que uma função ou procedimento pode possuir um terminador:
Código: Selecionar todos
FUNCTION BC_INIC()
FUNCTION BC_GABJAN()
FUNCTION BC_GDGRAF()
titulo = {"Analise de Prestacoes", "Fashion Center"}
meses = {"jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"}
legenda = {"Total", "Pagas", "Abertas"}
FUNCTION BC_GBARRA(attprest, attpago, attaberto, meses, legenda, titulo)
inkey(0)
FUNCTION BC_FIM()
Código: Selecionar todos
FUNCTION BC_INIC()
// Codigo da função
RETURN nil
FUNCTION BC_GABJAN()
// Codigo da função
RETURN nil
FUNCTION BC_GDGRAF()
titulo = {"Analise de Prestacoes", "Fashion Center"}
meses = {"jan", "fev", "mar", "abr", "mai", "jun", "jul", "ago", "set", "out", "nov", "dez"}
legenda = {"Total", "Pagas", "Abertas"}
// Codigo da função
RETURN nil
FUNCTION BC_GBARRA(attprest, attpago, attaberto, meses, legenda, titulo)
// Codigo da função
RETURN inkey(0)
FUNCTION BC_FIM()
// Codigo da função
RETURN nil
Código: Selecionar todos
FUNCTION BC_GABJAN( linha, coluna, largura, altura )
// Codigo da função
RETURN nil
Código: Selecionar todos
FUNCTION BC_GABJAN( linha, coluna, largura, altura )
// Codigo da função
RETURN nil
FUNCTION BC_GABJAN( linha, coluna, largura, altura )
// Codigo da função
RETURN ""
Código: Selecionar todos
FUNCTION SOMA( valorA, valorB )
nRetorno := valorA + valorB
RETURN nRetorno
ou:
FUNCTION SOMA( valorA, valorB )
RETURN valorA + valorB
Código: Selecionar todos
...
nResultado := SOMA( 10, 20 )
...
Código: Selecionar todos
...
nResultado := 100 - SOMA( 20, 30 )
...
Código: Selecionar todos
FUNCTION QUALOPCAO( valorA, valorB )
IF valorA > valorB
nRetorno := .T.
ELSE
nRetorno := .F.
ENDIF
RETURN nRetorno
Código: Selecionar todos
FUNCTION QUALOPCAO( valorA, valorB )
nRetorno := .F. // Retorno sempre será falso
IF valorA > valorB
nRetorno := .T. // Caso a critica seja verdadeira muda o retorno
ENDIF
RETURN nRetorno
Código: Selecionar todos
FUNCTION QUALOPCAO( valorA, valorB )
// Aqui uso uma função de critica e reduzo linhas de codigo
RETURN IIF( valorA > valorB, .T., .F. )
Com o que foi apresentado voce não acha que seu código ficaria mais bonito?
Mas me ficou uma duvida, voce esta migrando um código em Clipper para C?, esta migrando um código em xHarbour para C? ou esta migrando um código em Clipper para xHarbour?Estou migrando um programa em clipper para o windows em c, só que sou leigo nessa linguagem, gostaria q alguem me ajudasse com isto. Acredito q este seja a parte do forum errada para isto, mas estou usando o xharbour para a migração.
OPS! LINK QUEBRADO? Veja ESTE TOPICO antes e caso não encontre ENVIE seu email com link do tópico para [url=mailto://fivolution@hotmail.com]fivolution@hotmail.com[/url]. Agradecido.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
@braços : ? )
A justiça divina tarda mas não falha, enquanto que a justiça dos homens falha porque tarda.
-
johannstr
- Usuário Nível 1

- Mensagens: 17
- Registrado em: 23 Jan 2012 11:11
- Localização: Ijuí, Rio Grande Do Sul
Erro de sintax.
Recebi um programa em Clipper para fazer funcionar no windows, estou usando o Xhorbour para ler o clipper, que pelo q entendi passa ele para a linguagem C, e uso o compilador borlandC/C++ 5.5.
Obrigado pelas dicas e instruções dadas me ajudaram sim.
Abraços.
Obrigado pelas dicas e instruções dadas me ajudaram sim.
Abraços.
