Ir para conteúdo


Revista PROGRAMAR – Edição 46 (Setembro 2014): Download já disponível!

- - - - -

[Resolvido] Compilador Pascal

compilador pascal

  • Por favor inicie sessão para responder
40 respostas a este tópico

#21 Orgon

Orgon

    Boolean User

  • Membro
  • PipPipPip
  • 106 mensagens

Publicado 04 de Janeiro de 2013 - 18:56

Encontrei um compilador/ide mas e pago.
Chama-se irie pascal mas deve valer o investimento

#22 thoga31

thoga31

    Stack Overflow

  • Moderador
  • PipPipPipPipPipPipPip
  • 7437 mensagens

Publicado 04 de Janeiro de 2013 - 18:57

NOOON!
Se tens coisas óptimas à borla, para que é que vais gastar 80 dólares?
Usa Free Pascal, moço! Não vai ser esse compilador Irie que te vai resolver a questão dos acentos, se é isso que te preocupa...

Editado por thoga31, 04 de Janeiro de 2013 - 18:59.


#23 Orgon

Orgon

    Boolean User

  • Membro
  • PipPipPip
  • 106 mensagens

Publicado 04 de Janeiro de 2013 - 19:17

Nesse compilador os acentos estao corretos.
Ja exprimentei a demo e esta bom.

#24 thoga31

thoga31

    Stack Overflow

  • Moderador
  • PipPipPipPipPipPipPip
  • 7437 mensagens

Publicado 04 de Janeiro de 2013 - 20:34

E vais gastar 80 dólares por causa de meia dúzia de acentos? Really?
Pah, o dinheiro é teu, e se tens assim tanto para esbanjar ao desbarato, força, não serei eu a impedir-te...

#25 Orgon

Orgon

    Boolean User

  • Membro
  • PipPipPip
  • 106 mensagens

Publicado 04 de Janeiro de 2013 - 22:44

Então mas é que no IDE do Free Pascal os caracteres ficam bem, no linux os caracteres ficam bem só no windows com o lázarus ou com outro IDE é que fica mal.
É um bocado estranho.

#26 thoga31

thoga31

    Stack Overflow

  • Moderador
  • PipPipPipPipPipPipPip
  • 7437 mensagens

Publicado 04 de Janeiro de 2013 - 22:49

Não é o IDE, é o compilador. São coisas totalmente distintas.
É sabido que as coisas mudam de OS para OS. Para garantir o máximo de portabilidade possível, tanto quanto esteja ao meu alcance, faço o typecasting como te mostrei, e/ou uso também Compiler Directives.
Não procures a solução no compilador - procura-a antes no teu código.

#27 Orgon

Orgon

    Boolean User

  • Membro
  • PipPipPip
  • 106 mensagens

Publicado 04 de Janeiro de 2013 - 22:52

Eu ia perguntar-te isto agora mas acho que já respondes-te.
Então tu usas o typecasting certo?

#28 thoga31

thoga31

    Stack Overflow

  • Moderador
  • PipPipPipPipPipPipPip
  • 7437 mensagens

Publicado 04 de Janeiro de 2013 - 23:01

Sim, faço. Mas para garantir portabilidade, misturo typecasting com compiler directives. Ou melhor, mais recentemente uso a 2ª opção.

Algo deste género:
Código (Pascal):
const
   {$IFDEF win32}
   A_acento = #160;
   {$ELSE}
   A_acento = 'á';
   {$ENDIF}

// ...
write('Ol', A_acento);

Quando compilas isto em Windows, será utilizado Extended ASCII. Quando usas outro OS, é utilizado Unicode ;)

Editado por thoga31, 04 de Janeiro de 2013 - 23:01.


#29 Orgon

Orgon

    Boolean User

  • Membro
  • PipPipPip
  • 106 mensagens

Publicado 04 de Janeiro de 2013 - 23:15

Para te dizer a verdade só não percebi muito bem o que faz isto
{$IFDEF win32}
Consigo perceber que é um IF mas o que faz ao certo?

#30 thoga31

thoga31

    Stack Overflow

  • Moderador
  • PipPipPipPipPipPipPip
  • 7437 mensagens

Publicado 04 de Janeiro de 2013 - 23:24

Isso é uma Compiler Directive (CD). Basicamente controlas o compilador na hora da compilação, e dás-lhe ordens.

Neste caso, disse-lhe assim:
"Se estiveres a compilar para Windows 32-bits ({$IFDEF Win32}), então compilas este código... se não ({$ELSE}) compilas o seguinte."

As CD têm a seguinte sintaxe: {$comando <argumentos>}.

Ali, como podes ver, dei ordens condicionadas ao compilador. ;)

Outro exemplo é quando programas OOP no Free Pascal. Para ser aceite pelo compilador, tens de fazer isto logo antes de qualquer linha: {$MODE objfpc}.

Editado por thoga31, 04 de Janeiro de 2013 - 23:25.


#31 Orgon

Orgon

    Boolean User

  • Membro
  • PipPipPip
  • 106 mensagens

Publicado 04 de Janeiro de 2013 - 23:41

Percebido mas acho que vou ter de me habituar à IDE do Free Pascal mas também já utilizei o Gnu Pascal no Windows com a IDE Dev-Pascal, e ao compilar também fica com os caracteres certos "alem do free pascal com a sua própria IDE" só tenho pena o projecto Gnu Pascal estar descontinuado e não utilizar as bibliotecas do pascal.

#32 thoga31

thoga31

    Stack Overflow

  • Moderador
  • PipPipPipPipPipPipPip
  • 7437 mensagens

Publicado 04 de Janeiro de 2013 - 23:46

A ver se entendo o que reina aí...
O que é 1) um IDE e 2) um compilador? :)

#33 Orgon

Orgon

    Boolean User

  • Membro
  • PipPipPip
  • 106 mensagens

Publicado 04 de Janeiro de 2013 - 23:51

Um IDE é onde se escreve o código fonte e o compilador é o que passa o código fonte para código de máquina.
Eu já sei o que é um compilador, um interpretador e um IDE desde os 12 anos acho que é das únicas coisas que ainda estão aqui dentro desde que comecei a estudar programação.

Editado por Orgon, 04 de Janeiro de 2013 - 23:55.


#34 thoga31

thoga31

    Stack Overflow

  • Moderador
  • PipPipPipPipPipPipPip
  • 7437 mensagens

Publicado 04 de Janeiro de 2013 - 23:58

Ok. É que me parece que tens confundido IDE com compilador. A culpa dos acentos não aparecerem não é de nenhum IDE, é do compilador (não há "culpas", mas ok).

Recomendo-te vivamente o Free Pascal (FPC). Boa parte dos IDEs/compiladores de Pascal de hoje baseiam-se no FPC. Vê o tópico que te indiquei há uns posts atrás para não teres de utilizar o IDE arcaico do FPC. ;)

#35 Orgon

Orgon

    Boolean User

  • Membro
  • PipPipPip
  • 106 mensagens

Publicado 05 de Janeiro de 2013 - 00:16

Se eu tivesse uma Internet decente ate te mandava uns printscreen do que te estou a tentar dizer.
Eu sei que tu tens mais experiência que eu neste mundo da programação, mas é assim "não estou a confundir nada!!" com o IDE do Free pascal os caracteres ficam normais, e com outros IDE's os caracteres mudam completamente.
Quando poder eu mando uns printscreen do que te estou a dizer.

#36 thoga31

thoga31

    Stack Overflow

  • Moderador
  • PipPipPipPipPipPipPip
  • 7437 mensagens

Publicado 05 de Janeiro de 2013 - 00:25

Ah, ok, já sei àquilo a que te referes.
É assim: quando escreves os programas directamente no IDE do Free Pascal e os guardas, não sei o que raio ele faz que os caracteres com acentos trocam todos, e só no IDE do FPC irão aparecer bem.

Por isso eu aconselho o uso de um IDE como o Notepad++, utilizando o FPC apenas para compilar. ;)

Editado por thoga31, 05 de Janeiro de 2013 - 00:26.


#37 Orgon

Orgon

    Boolean User

  • Membro
  • PipPipPip
  • 106 mensagens

Publicado 05 de Janeiro de 2013 - 01:58

Era isso que te estavaa explicar.
Mas mesmo assim acho que nao percebeste bem.
Free pascal IDE
Eu escrevo o programa com todo o tipo de caracteres guardo, compilo e fica tudo excelente.

Outros IDE's
Eu escrevo o programa igual ao mesmo que fiz no IDE do free pascal gravo e os caracteres mudam, compilo os caracteres nao sao os que eu meti.

Editado por Orgon, 05 de Janeiro de 2013 - 02:08.


#38 pwseo

pwseo

    Unsigned User

  • Moderador
  • PipPipPipPipPipPip
  • 1167 mensagens

Publicado 05 de Janeiro de 2013 - 11:59

Esse problema dos caracteres deve-se ao facto da linha de comandos do Windows utilizar um conjunto de caracteres diferente do utilizado no código.
Quando utilizas o Free Pascal IDE, estás a fazê-lo dentro da linha de comandos (codepage 850) e por isso ao compilares o programa e executares na linha de comandos, os caracteres serão apresentados correctamente porque foram escritos e vistos na codepage 850.

Quando escreves código noutro programa (ex.: Lazarus) e abres no Free Pascal IDE (ou quando escreves no Free Pascal IDE e abres no Lazarus) vais ver caracteres diferentes porque os programas funcionam em conjuntos de caracteres diferentes (cp850 para o FPIDE e UTF-8 para o Lazarus).

Ou seja, o verdadeiro problema aqui é a linha de comandos do Windows.
Se tiveres um programa escrito em UTF-8 podes escrever chcp 65001 na linha de comandos antes de o executares e deverá funcionar, segundo li aqui (há no entanto alguns bugs, pelos vistos, mas isso é culpa da linha de comandos e não do compilador).

Editado por pwseo, 05 de Janeiro de 2013 - 12:04.


#39 Orgon

Orgon

    Boolean User

  • Membro
  • PipPipPip
  • 106 mensagens

Publicado 05 de Janeiro de 2013 - 14:31

Obrigado pelo tempo mas continua na mesma.
Eu desenrasco-me com o que tenho.

#40 pwseo

pwseo

    Unsigned User

  • Moderador
  • PipPipPipPipPipPip
  • 1167 mensagens

Publicado 05 de Janeiro de 2013 - 15:05

Pois, é provável (e natural).

O que eu queria que percebesses é que isso nada tem a ver com o compilador em si (o mesmo problema ocorre com programas feitos em qualquer linguagem, com qualquer compilador) desde que estejamos a executá-los na linha de comandos do Windows