Clipper On Line • Ver Tópico - Rodar Basic no Harbour
Mudar para estilo Clássico
Discussão sobre outras linguagens de programação.
Postar uma resposta

Rodar Basic no Harbour

24 Out 2020 10:49

Senhores, bom dia.

É possível rodar Basic no Harbour ? Pergunto porque estou com um material que oferece códigos em Basic para criar jogos e eu gostaria de fazer uns testes.

Caso seja possível enviem se possível como fazê-lo, porque eu tentei passar o códigos dos exemplos apenas colocando Procedure Main no início e return no final, mas não deu certo.

Desde já agradeço.

Segue anexo a capa do material comentado.

Ricardo
Anexos
basic-games-capa.jpg

Rodar Basic no Harbour

24 Out 2020 13:18

Olha, meio inusitado tua postagem !
Escrever " Function Main().....Return " e colocar código Basic no meio e querer que funcione, utilizando o Harbour, é no mínimo bizarro não acha !
Será que talvez o que vc queria perguntar era se tinha como portar o código Basic para Harbour ?

Rodar Basic no Harbour

24 Out 2020 15:49

Olá MSDN, é isso mesmo :) , quero fazer uns testes de Basic no Harbour, é possíivel.

Sei que é bizarro o que eu perguntei, mas ão vejo como impossível ;-)

A questão ´que não sei como fazer.

Obrigado por responder.

Rodar Basic no Harbour

24 Out 2020 22:12

Olá!
ricardosierban escreveu:não sei como fazer

Use o pré processador...

Rodar Basic no Harbour

25 Out 2020 22:46

Ricardo,

O Harbour foi criado para executar código compatível com a linguagem usada no Clipper (xBase). Sendo assim, não há nada nele voltado para a linguagem BASIC.

Você pode usar BASIC no FreeBASIC (entre outras opções):

https://www.freebasic.net/

https://github.com/freebasic/fbc

Rodar Basic no Harbour

26 Out 2020 13:13

Amiguinhos,

Nada é impossivel com xBase mas sim passível.

Código:
// Sample directives to help translation of VBScript.

// WARNING: Line continuation _ is NOT supported.
//        : LOOP becomes END so don't mix VBScript support with XBScript
//          code that uses LOOP!   
//        : VBScript Function call without () is NOT supported.

#command ' <*x*> =>
#command Dim <vars,...> => Local <vars>
#command Set <!id!> = <exp> => <id> := <exp>
#command If <cond> Then => IF <cond>
#command Loop => End

#translate .<!id!> => :<id>
#translate Not => !
#translate And => .AND.
#translate Or => .OR.
#translate MsgBox <exp>[.<more>] => MessageBox( 0, <exp>[:<more>], "XBScript", 0 )
#translate Nothing => NIL
//#translate _ => ;
#translate & => +   

#define adCmdTable 0

/* ****************************** codigo exemplo ****************************** *
' Vbscript comment.
Dim cn
Dim rs

Set cn = CreateObject( "ADODB.Connection" )

cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.3.51;" ;
  & "User Id=Admin; Data Source=ado.mdb"

cn.Open

Set rs = CreateObject( "ADODB.Recordset" )
rs.Open( "Names", cn, 0, 1, 2 )

do while not rs.eof()
  MsgBox rs.Fields( "First" ).Value
  rs.MoveNext()
loop

rs.Close
Set rs = Nothing

'cn.Close
Set cn = Nothing
* ****************************** codigo exemplo ****************************** */


Usando xcommand e #translate você pode simular alguns comandos e funções em outras linguagens.

Recentemente o José M Quintas também falou sobre o assunto.

Quando eu colecionava revistas de programação importadas com Clipper Advisor encontrei uma reportagem onde um programador criou um .CH com todos os comandos do Cobol, tornando possivel se programar nesta linguagem e compilar com Clipper.

Basta um esmero.

Rodar Basic no Harbour

26 Out 2020 13:24

Vai acabar topando com coisas que não dá pra traduzir.
Como é pra games, provavelmente vai topar a parte gráfica que pode complicar.
Tem um detalhe também do array começar no número 0 e não no 1, o que pode precisar de ajustes adicionais.
Tudo vai depender dos fontes/recursos usados.

Rodar Basic no Harbour

26 Out 2020 14:50

Os jogos presentes no livro citado fazem uso intenso do GOTO e tem as linhas numeradas (característica dos dialetos BASIC mais antigos).

Podem ver no link abaixo:

https://archive.org/details/Basic_Computer_Games_Microcomputer_Edition_1978_Creative_Computing/page/n15/mode/2up

Então, não se resume a uma simples conversão de comandos usando o pré-processador. Tem de resolver o problema do GOTO para lá, GOTO para cá. Mas não tem o problema dos gráficos, pois são jogos em modo texto.

Como exercício de programação, pode ser interessante adaptar os programas para xBase. Mas se o objetivo é se divertir com os jogos, um compilador BASIC seria a melhor e mais rápida opção.

Rodar Basic no Harbour

27 Out 2020 20:45

Agradeço à todos a ajuda, vou fazer os testes com o Free Basic e deixar o Harbour só para o Clipper mesmo :)

De qualquer maneira estou gostando muito da linguagem.

Rodar Basic no Harbour

27 Out 2020 21:31

Ricardo, não sei os outros programadores, mas quando eu vi isso
Harbour só para o Clipper mesmo
, dá entender que Harbour é só uma ferramenta para código legado Clipper, sendo que suas capacidades vão muito, mas muito além disso, então, se nos seus vídeos for esse o rumo que vai tomar, peço que reconsidere, pois não ajudaria em nada a linguagem e as pessoas que se utilizam dela profissionalmente.
Postar uma resposta