Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Wonderson Lisboa

Construindo cadastro em turbo pascal

Mensagens Recomendadas

Wonderson Lisboa

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.

Editado por Wonderson Lisboa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nunopicado

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Wonderson Lisboa
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"

Editado por Wonderson Lisboa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nunopicado
  • 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Wonderson Lisboa
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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
nunopicado

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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Wonderson Lisboa
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.

Editado por Wonderson Lisboa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.