Jump to content

Recommended Posts

Posted (edited)

Estou construindo um cadastro em turbo pascal e preciso de ajuda com:

1 - como faço para o cursor ir para o próximo "readln" ou retornar para o anterior usando tab ?

2 - salvar varios dados heterogêneos num arquivo de texto usando assing. 

Ex: 

 Nome, data de nascimento,  código. ...

 

De já agradeço toda a ajuda.

Edited by Wonderson Lisboa
Posted

Para a 1ª questão: 
Para usares o tab para controlar a posição do cursor, não podes usar o readln. As teclas têm de ser controladas uma a uma, para que possas controlar o que faz o tab.

Assim, tens de usar a função "readkey", que lê uma tecla de cada vez, e depois controlar todo o input.
Por exemplo, tens de controlar o caracter #9 (TAB) para enviares o cursor para onde desejas, controlar o caracter #8 (BackSpace) para que o utilizador possa apagar o caracter que escreveu anteriormente, controlar o #13 para finalizar a inserção de dados, e assim por aí fora.
Cada chamada ao readkey devolve uma única tecla (no caso de teclas especiais, como setas por exemplo, são precisas duas leituras ao readkey para fazer uma tecla), por isso todo esse controle deverá estar dentro de um ciclo (recomendo o repeat-until).

Para salvares dados de forma heterogenea, o mais fácil não é um arquivo de texto. Um arquivo de texto só guarda strings, e terás de ter algum trabalho para gerir os tipos de dados.
Recomendo-te usares ficheiros binários:

1º Crias um tipo Record com todos os campos que queres guardar

2º Crias um ficheiro desse tipo record

3º Ao guardares o record dentro do ficheiro, ele fica com a estrutura completa do record. Quando o fores ler, tens os tipos de dados direitinhos, prontos a usar.

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

  • 2 weeks later...
Posted (edited)
Em 03/05/2018 às 19:31, nunopicado disse:

Para a 1ª questão: 
Para usares o tab para controlar a posição do cursor, não podes usar o readln. As teclas têm de ser controladas uma a uma, para que possas controlar o que faz o tab.

Assim, tens de usar a função "readkey", que lê uma tecla de cada vez, e depois controlar todo o input.
Por exemplo, tens de controlar o caracter #9 (TAB) para enviares o cursor para onde desejas, controlar o caracter #8 (BackSpace) para que o utilizador possa apagar o caracter que escreveu anteriormente, controlar o #13 para finalizar a inserção de dados, e assim por aí fora.
Cada chamada ao readkey devolve uma única tecla (no caso de teclas especiais, como setas por exemplo, são precisas duas leituras ao readkey para fazer uma tecla), por isso todo esse controle deverá estar dentro de um ciclo (recomendo o repeat-until).

Para salvares dados de forma heterogenea, o mais fácil não é um arquivo de texto. Um arquivo de texto só guarda strings, e terás de ter algum trabalho para gerir os tipos de dados.
Recomendo-te usares ficheiros binários:

1º Crias um tipo Record com todos os campos que queres guardar

2º Crias um ficheiro desse tipo record

3º Ao guardares o record dentro do ficheiro, ele fica com a estrutura completa do record. Quando o fores ler, tens os tipos de dados direitinhos, prontos a usar.

Realmente você me ajudou muito, obrigado.

Agora enfreto outro dilema. O DOSBOX que baixei não emula os programas que criei e estava contando com ele para poder usar em modo DOS full screen.

Uso Windows 7 - 32 bits você poderia solucionar isso também. 

Frase de erro que aparece:

"Erro, the program not run in dos mode"

Edited by Wonderson Lisboa
Posted
  • Experimenta entrar na 'Linha de Comandos' do Windows.
  • Pressiona as teclas Alt + Enter

Testa assim se é o que queres.

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Posted
25 minutos atrás, nunopicado disse:
  • Experimenta entrar na 'Linha de Comandos' do Windows.
  • Pressiona as teclas Alt + Enter

Testa assim se é o que queres.

Eu já usei o DOSBOX outras vezes e fazia dessa forma mas agora na versão 0.74 ele nem abre o programa, diz que o Windows 7 não suporta esse tipo de programa

Posted

Tens de pesquisar sobre isso então. Não uso o DOSBOX há anos. 🙂

"A humanidade está a perder os seus génios... Aristóteles morreu, Newton já lá está, Einstein finou-se, e eu hoje não me estou a sentir bem!"

> Não esclareço dúvidas por PM: Indica a tua dúvida no quadro correcto do forum.

Posted (edited)
Em 14/05/2018 às 20:59, nunopicado disse:

Tens de pesquisar sobre isso então. Não uso o DOSBOX há anos. 🙂

De toda forma já me ajudou muito, obrigado e por favor não deixé de repassar seu conhecimento à aqueles que estão começando como eu.

Edited by Wonderson Lisboa

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.