Jump to content
Evolution

[Resolvido] Compilador Pascal

Recommended Posts

Evolution

Gosta de saber se alguém me indica uma interface amigável para usar com o free pascal.

Eu já usei o Geany com o free pascal , mas sempre que eu compilava algum código com acentos ou caracteres sem ser apenas letras ou números por exemplo:

Program Exemplo ;
Begin
writeln ('Este é um programa de exemplo!!');
readln;
End.

Em vez de aparecer o "e" com acento aparecia outro carácter.

Actualmente uso o Pascal Zim mas não gosto muito dele.

Se alguém conhecer outra interface poste o nome ou link, ou se alguém souber como resolver o meu problema com o Geany diga como o fazer.

Edited by nunopicado
Adicionado Pascal Sintax Highlight ao código.

Share this post


Link to post
Share on other sites
pmg

The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) (by Joel Sposky).

Suponho que o charset do teu ficheiro fonte com o código em Pascal e o charset da execução do executável são diferentes. Tens que configurar o teu sistema para o mesmo charset nas duas situações.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
nunopicado

Deixa-me só fazer uma correcção antes de avançar: O que procuras não é um compilador, mas sim um IDE (isto facilita a busca).

No caso do PascalZIM, nem compilador aquilo tem... Acredito que não gostes, é mesmo muito mau!

Adiante:

Eu pessoalmente uso o IDE Lazarus, que é da mesma equipa do FreePascal, e que usa o FreePascal como compilador.

Este IDE tem a particularidade de ser um RAD IDE, ou trocando por miudos, podes criar rapidamente (e visualmente) aplicações para Windows com ele.

No entanto, quando crias um novo projecto, ele tem a possibilidade de criar um projecto do tipo PROGRAM, e torna-se um editor normal para FreePascal.

Depois, basta que inicies o código colocando a seguinte directiva de compilador:

{$CODEPAGE UTF8}  

Ficaria algo assim:

{$CODEPAGE UTF8}
Program Exemplo ;
Begin
 writeln ('Este é um programa de exemplo!!');
 readln;
End.

E assim os assentos já estão bem.

No fundo o que isto faz é dizer ao compilador em que codificação está o código fonte, para ele saber o que fazer depois.

É possível que usando esta directiva no Geany também funcione, mas pode é não ser UTF8 e sim outra codificação qualquer, isso já depende do IDE.

Edited by nunopicado

"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.

Share this post


Link to post
Share on other sites
Evolution

Nuno eu compilei o teu código e ficou assim:

Este ú programa de exemplo!!

Mas o lazarus também dá para trabalhar em linha de comando???

Share this post


Link to post
Share on other sites
nunopicado

O Lazarus funciona em Windows (e linux) mas também dá para criar programas de linha de comandos.

Para tal, quando clicas em "NEW PROJECT", aparece-te uma lista de opções de projecto, tens de escolher PROGRAM (a predefinição é APPLICATION, para fazer aplicações para Windows.

Ter ficado mal fui eu que me esqueci de um pormenor! :)

É preciso indicar ao Windows que a página de códigos da linha de comandos (geralmente 850) é igual à do Windows (1252).

Para isso, tens de aceder ao REGEDIT e fazer o seguinte:

1. Procuras a seguinte chave: [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Nls\CodePage]

2. Editas a que disser OEMCP. Provavelmente a tua tem o valor 850. Altera-a para 1252.

3. Reinicias o computador

Depois, com a alteração que te falei no programa, já dará bem!

EDIT: Podes experimentar até só a alteração do Regedit. Se o IDE que usares já funcionar em 1252, nem precisas de mais nada.

O Lazarus é que funciona em UTF8, daí ser necessária aquela directiva.

Edited by nunopicado

"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.

Share this post


Link to post
Share on other sites
nunopicado

Com qual? Já instalaste o Lazarus?


"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.

Share this post


Link to post
Share on other sites
nunopicado

Com o Geany é possíve que seja necessário outra pagina de códigos, mas não te sei dizer qual.

Com o Lazarus fica assim:

teste10.jpg


"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.

Share this post


Link to post
Share on other sites
Evolution

Está na mesma coisa com o lazarus.

Edited by Evolution

Share this post


Link to post
Share on other sites
nunopicado

Com o Lazarus? Chegaste a alterar o regedit e a reiniciar o PC?


"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.

Share this post


Link to post
Share on other sites
Evolution

Sim e está tudo na mesma tanto no geany e no lazarus.

Mas no geany já mudou a caracter.

Edited by Evolution

Share this post


Link to post
Share on other sites
Evolution

Alguém me pode explicar o que é um ficheiro (.O)?

E se dá para desactivar essa opção.

Share this post


Link to post
Share on other sites
thoga31

A compilação de um programa em Pascal através do Free Pascal envolve vários passos, e no meio disso são criados ficheiros como o *.o. Não é nenhuma opção, são ficheiros importantes. O executável é independente deles, claro. Mas caso venhas a programar units, terás de andar com esses ficheiros atrás para que os programas que as utilizem possam linkar.


Knowledge is free!

Share this post


Link to post
Share on other sites
Orgon

Eu estou com o mesmo problema que o evolution.

Na escola uso o Pzim mas não gosto muito daquilo, e já a uns tempos que estou a procura de um compilador pascal.

Já usei o Free Pascal mas aparece uns caracteres esquisitos no lugar das letras com acentos e queria saber uma maneira de corrigir isso.

Já tentei o que diz aqui mas não deu.

Share this post


Link to post
Share on other sites
thoga31

Podes utilizar o Free Pascal como compilador e um IDE diferente. Vê aqui aquilo que eu utilizo.

Quanto aos caracteres, o compilador só compila caracteres do Standard ASCII. Acentos e outros fazem parte do Extended ASCII, o qual o compilador não reconhece de forma directa. Para que ele seja compilado, é preciso seguir os passos que o @nunopicado indicou, ou então (e que é um bocado chato) fazer o typecasting dos caracteres. Por exemplo, para obter o texto final "Olá":

writeln('Ol', char(160));
// ou...
writeln('Ol', #160);

Edited by thoga31

Knowledge is free!

Share this post


Link to post
Share on other sites

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.