Précédent   Forum du club des développeurs et IT Pro > Autres langages > Pascal > Autres IDE
Autres IDE Les autres environnements de développement (PP Compiler, ...)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 03/08/2012, 13h00   #1
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 002
Points : 1 002
Par défaut Utilisation de l'unité WinCRT

Bonjour !

J'ai rencontré un problème en essayant l'unité WinCRT de Virtual Pascal.

Voici mon code :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
(* Virtual Pascal 2.1 *)
 
program testWinCrt;
 
uses
  WinCrt, Strings, Windows;
 
begin
  CheckBreak := True;
  //ScreenSize.x := 128;
  StrCopy(WindowTitle, 'D'#233'monstration de WinCRT');
  InitWinCrt;
  WriteBuf('Bonjour !'#10#13, 11);
  //ReadKey;
  //repeat until KeyPressed;
  DoneWinCrt;
end.
La fenêtre s'ouvre et le texte s'affiche, mais ni Readkey ni KeyPressed ne fonctionnent. L'instruction ScreenSize.x := est également sans effet.

Autre problème : je ne parviens pas à changer le nombre de lignes de l'éditeur, ni en passant par les options de l'IDE, ni par le fichier de commande trouvé dans le tutoriel d'Alcatîz. Est-ce encore un coup de Windows 7 ?

Dernière question. J'ai voulu essayer de compiler un programme à partir de Geany. J'obtiens ce message d'erreur : "unit system.vpi not found". Pourtant, le même programme se compile sans erreur à partir de l'IDE. Auriez-vous des idées sur le sujet ?
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2012, 14h29   #2
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 002
Points : 1 002
Par contre, je m'aperçois qu'en passant par les propriétés du raccourci vers Vp.exe, on peut choisir (je parle toujours de Windows 7) les dimensions de l'écran, la taille de la police et la police elle-même. Je n'avais jamais constaté cela auparavant.

Et là on obtient je trouve de très bonnes conditions de travail.
Images attachées
Type de fichier : png console_vp.png (24,2 Ko, 8 affichages)
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2012, 17h30   #3
Alcatîz
Responsable Pascal

 
Avatar de Alcatîz
 
Homme Jean-Luc Gofflot
Ressources humaines
Inscription : mars 2003
Messages : 5 510
Détails du profil
Informations personnelles :
Nom : Homme Jean-Luc Gofflot
Âge : 46
Localisation : Belgique

Informations professionnelles :
Activité : Ressources humaines
Secteur : Service public

Informations forums :
Inscription : mars 2003
Messages : 5 510
Points : 39 351
Points : 39 351
Envoyer un message via ICQ à Alcatîz Envoyer un message via MSN à Alcatîz Envoyer un message via Yahoo à Alcatîz Envoyer un message via Skype™ à Alcatîz
Bonjour,

Je n'ai encore jamais essayé d'installer Virtual Pascal sur Windows 7 ; je vais voir d'où peuvent venir les différents problèmes. Je te tiens au courant.
__________________
Règles du forum
Tutoriels, exercices, FAQ, sources, compilateurs, outils, livres Pascal
Mes tutoriels et sources Pascal
FAQ Assembleur

Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
Alcatîz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/08/2012, 17h59   #4
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 002
Points : 1 002
Citation:
Envoyé par Alcatîz Voir le message
Bonjour,

Je n'ai encore jamais essayé d'installer Virtual Pascal sur Windows 7 ; je vais voir d'où peuvent venir les différents problèmes. Je te tiens au courant.
Merci, Alcatîz, c'est gentil. Je suis plongé depuis hier dans ton tutoriel où j'apprends des tas de choses.
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2012, 13h10   #5
Alcatîz
Responsable Pascal

 
Avatar de Alcatîz
 
Homme Jean-Luc Gofflot
Ressources humaines
Inscription : mars 2003
Messages : 5 510
Détails du profil
Informations personnelles :
Nom : Homme Jean-Luc Gofflot
Âge : 46
Localisation : Belgique

Informations professionnelles :
Activité : Ressources humaines
Secteur : Service public

Informations forums :
Inscription : mars 2003
Messages : 5 510
Points : 39 351
Points : 39 351
Envoyer un message via ICQ à Alcatîz Envoyer un message via MSN à Alcatîz Envoyer un message via Yahoo à Alcatîz Envoyer un message via Skype™ à Alcatîz
Voilà, j'ai installé VP sur Windows 7. J'en ai d'ailleurs profité pour faire un maximum de screenshots pour un tutoriel d'installation.

Prenons les problèmes dans le désordre :
Citation:
Envoyé par Roland Chastain Voir le message
je ne parviens pas à changer le nombre de lignes de l'éditeur, ni en passant par les options de l'IDE, ni par le fichier de commande trouvé dans le tutoriel d'Alcatîz. Est-ce encore un coup de Windows 7 ?
Pour modifier le nombre de lignes et de colonnes de l'éditeur, il faut procéder en deux étapes :
- Démarrer l'IDE, aller dans le menu Options / Environment / Preferences, cocher l'option Keep original et fermer l'IDE.
- Editer les propriétés du raccourci, dans l'onglet Disposition, et augmenter les valeurs de taille de la mémoire tampon de l'écran et de taille de fenêtre. J'ai personnellement configuré mon éditeur en 128 colonnes sur 80 lignes, ce qui est confortable selon mon goût.

Par contre, ce qui me fâche c'est l'intégration de l'éditeur avec le système : avec les autres versions de Windows, l'IDE permet par exemple des copier-coller avec le presse-papier ; Windows 7 ne le permet pas. De même, les combinaisons de touches de l'éditeur sont interceptées par le système, ce qui rend inopérantes certaines d'entre elles et oblige de travailler à la souris. Tout cela est bien sûr lié au support de plus en plus ténu du mode console par Windows.

Citation:
Envoyé par Roland Chastain Voir le message
J'ai rencontré un problème en essayant l'unité WinCRT de Virtual Pascal.
La fenêtre s'ouvre et le texte s'affiche, mais ni Readkey ni KeyPressed ne fonctionnent. L'instruction ScreenSize.x := est également sans effet.
Je ne constate pas ce problème. Un détail : dans les options de l'éditeur de liens, il faut bien cocher qu'il s'agit d'une application GUI (et non compatible GUI). En effet, une fenêtre WinCrt est une véritable fenêtre Windows.

Citation:
Envoyé par Roland Chastain Voir le message
Dernière question. J'ai voulu essayer de compiler un programme à partir de Geany. J'obtiens ce message d'erreur : "unit system.vpi not found". Pourtant, le même programme se compile sans erreur à partir de l'IDE. Auriez-vous des idées sur le sujet ?
Pour ce qui est de Geany, je ne trouve pas de solution mais je suis éminemment intéressé vu les limitations de l'éditeur dues à Windows 7 par rapport aux versions précédentes. Le problème est identique sous Windows et sous Linux, tant en ligne de commande directe qu'avec Geany. J'ai essayé de modifier le PATH, d'inclure le fichier de configuration vpo dans la commande, etc, mais rien à faire. Je vais bien sûr encore chercher.

__________________
Règles du forum
Tutoriels, exercices, FAQ, sources, compilateurs, outils, livres Pascal
Mes tutoriels et sources Pascal
FAQ Assembleur

Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
Alcatîz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2012, 14h36   #6
Alcatîz
Responsable Pascal

 
Avatar de Alcatîz
 
Homme Jean-Luc Gofflot
Ressources humaines
Inscription : mars 2003
Messages : 5 510
Détails du profil
Informations personnelles :
Nom : Homme Jean-Luc Gofflot
Âge : 46
Localisation : Belgique

Informations professionnelles :
Activité : Ressources humaines
Secteur : Service public

Informations forums :
Inscription : mars 2003
Messages : 5 510
Points : 39 351
Points : 39 351
Envoyer un message via ICQ à Alcatîz Envoyer un message via MSN à Alcatîz Envoyer un message via Yahoo à Alcatîz Envoyer un message via Skype™ à Alcatîz
J'ai trouvé pour le dernier problème !

Si les répertoires sont correctement configurés dans l'IDE natif, il faut faire référence au fichier de configuration vp.vpo dans la ligne de commande. Dans Geany, il faut surtout que le dossier de travail pointe vers le dossier où se trouve le compilateur :Attention, pas d'espace après le -V sinon cela ne fonctionne pas !

Pour avoir un build complet, il faut ajouter l'option -B avant le -V.

Tant qu'à faire, pour ceux qui sont sous Linux, il est possible de rajouter à Geany des commandes pour la conversion au format ELF de l'exécutable produit par le compilateur et pour le rendre exécutable in fine :Pour résumer, sous Linux, si Virtual Pascal est installé dans le répertoire /home/bibi/vp21 :
  • Compilation :
    • Commande : ./vpc -Vvp.vpo "%d/%f"
    • Dossier de travail : /home/bibi/vp21/bin.lnx
  • Reconstruction :
    • Commande : ./vpc -B -Vvp.vpo "%d/%f"
    • Dossier de travail : /home/bibi/vp21/bin.lnx
  • Conversion au format ELF :
    • Commande : ./pe2elf -t:Linux "../out.lnx/%e.exe"
    • Dossier de travail : /home/bibi/vp21/bin.lnx
  • Attribut exécutable :
    • Commande : chmod +x "%e"
    • Dossier de travail : /home/bibi/vp21/out.lnx
__________________
Règles du forum
Tutoriels, exercices, FAQ, sources, compilateurs, outils, livres Pascal
Mes tutoriels et sources Pascal
FAQ Assembleur

Le problème en ce bas monde est que les imbéciles sont sûrs d'eux et fiers comme des coqs de basse cour, alors que les gens intelligents sont emplis de doute. [Bertrand Russell]
Alcatîz est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 04/08/2012, 15h24   #7
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 002
Points : 1 002
Citation:
Envoyé par Alcatîz Voir le message
Je ne constate pas ce problème. Un détail : dans les options de l'éditeur de liens, il faut bien cocher qu'il s'agit d'une application GUI (et non compatible GUI). En effet, une fenêtre WinCrt est une véritable fenêtre Windows.
C'était ça. Génial !

Citation:
Envoyé par Alcatîz Voir le message
Pour modifier le nombre de lignes et de colonnes de l'éditeur, il faut procéder en deux étapes :
- Démarrer l'IDE, aller dans le menu Options / Environment / Preferences, cocher l'option Keep original et fermer l'IDE.
- Editer les propriétés du raccourci, dans l'onglet Disposition, et augmenter les valeurs de taille de la mémoire tampon de l'écran et de taille de fenêtre. J'ai personnellement configuré mon éditeur en 128 colonnes sur 80 lignes, ce qui est confortable selon mon goût.
Oui, ça marche.

Citation:
Envoyé par Alcatîz Voir le message
Pour ce qui est de Geany, je ne trouve pas de solution mais je suis éminemment intéressé vu les limitations de l'éditeur dues à Windows 7 par rapport aux versions précédentes.
Je vais continuer à chercher aussi de mon côté.

Pour l'essentiel (l'utilisation de WinCrt) la discussion est résolue. L'unité est parfaitement utilisable sous Windows 7.
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/08/2012, 15h30   #8
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 002
Points : 1 002
Citation:
Envoyé par Alcatîz Voir le message
J'ai trouvé pour le dernier problème !
Génial ! Je vais essayer tout de suite.
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/08/2012, 01h32   #9
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 002
Points : 1 002
Le tandem Geany-Virtual Pascal fonctionne parfaitement et fait un bel outil de travail.

On peut y adjoindre l'aide de Virtual Pascal au format CHM.

Quant à l'unité WinCRT, elle est bien pratique : elle permet d'ouvrir une "vraie" fenêtre avec les fonctions de la console.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
(*  Virtual Pascal 2.1  *)
 
(*  Simple fenêtre avec entrée et sortie *)
 
program exemple;
 
uses
  winCrt, sysUtils;
 
var
  s: string;
  i: smallWord;
 
begin
  checkBreak := true;
  screenSize.x := 40;
  screenSize.y := 20;
  strCopy(windowTitle, 'Fen'#234'tre WinCrt');
  initWinCrt;
  writeLn(timeToStr(time)+#10#13);
  writeLn('Quel est votre nom ?');
  readLn(s);
  writeLn('Bonjour '+ s +' !');
  writeLn('Entrez un nombre !');
  readLn(i);
  writeLn('Le double de '+ intToStr(i) + ' est '+ intToStr(2*i) +'.');
  writeLn('Pressez une touche !');
  readKey;
  doneWinCrt;
end.
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2012, 12h34   #10
Roland Chastain
Membre Expert
 
Homme Roland Chastain
Inscription : décembre 2011
Messages : 687
Détails du profil
Informations personnelles :
Nom : Homme Roland Chastain
Âge : 39
Localisation : Mali

Informations professionnelles :
Secteur : Enseignement

Informations forums :
Inscription : décembre 2011
Messages : 687
Points : 1 002
Points : 1 002
Par défaut Lecture et écriture de fichier texte

Voici un autre petit programme.

Le programme ouvre un fichier texte (ci-joint), récupère des données et fabrique une unité Pascal contenant ces données.

L'opération est chronométrée au moyen d'une fonction empruntée à un exemple d'Alcatîz.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
 
(* Virtual Pascal 2.1 *)
 
program Exemple;
 
(* Lit le fichier estr-tbl.txt et le convertit en unité Easter.pas *)
 
uses
  SysUtils, WinCRT, Windows;
 
var
  Easter : array[1900..2199] of string[5];
  HrDebut, HrFin : tSystemTime;
 
procedure ReadEasterTable;
var
  f: text;
  s: string;
  i, j: smallInt;
begin
  Assign(f, 'estr-tbl.txt');
  Reset(f);
  i := 1900;
  while not EOF(f) do
  begin
    readLn(f, s);
    if (Copy(s, 2, 1) = '1') or (Copy(s, 2, 1) = '2') then
    begin
      for j := 0 to 9 do
      begin
        Easter[i + j] := Copy(s, 8 + j * 6, 5);
      end;
      inc(i, 10);
    end;
  end;
  Close(f);
end;
 
procedure MakeUnit;
var
  f: text;
  s: string;
  i: smallInt;
begin
  assign(f, 'Easter.pas');
  rewrite(f);
  writeLn(f); writeLn(f, 'unit Easter;');
  writeLn(f); writeLn(f, 'interface');
  writeLn(f); writeLn(f, 'const');
  writeLn(f, '  DateOfEaster : array [1900..2199] of string[5] = (');
  for i := 1900 to 2198 do
  begin
    if i mod 10 = 0 then write(f, '  ');
    write(f, '''' + Easter[i] + '''' + ',');
    if ((i + 1) mod 10 = 0) then writeLn(f);
  end;
  writeLn(f, '''' + Easter[2199] + '''' + ');');
  writeLn(f); writeLn(f, 'implementation');
  writeLn(f); writeLn(f, 'end.');
  close(f);
end;
 
function TEMPS_ECOULE (
                      HrDebut, HrFin : tSystemTime
                     ) : Cardinal;
begin
  TEMPS_ECOULE := Cardinal(HrFin.wHour) * 3600000 +
                  Cardinal(HrFin.wMinute) * 60000 +
                  Cardinal(HrFin.wSecond) * 1000 +
                  Cardinal(HrFin.wMilliseconds) -
                  Cardinal(HrDebut.wHour) * 3600000 -
                  Cardinal(HrDebut.wMinute) * 60000 -
                  Cardinal(HrDebut.wSecond) * 1000 -
                  Cardinal(HrDebut.wMilliseconds);
end;
 
begin
  InitWinCRT;
  GetLocalTime(HrDebut);
  ReadEasterTable;
  MakeUnit;
  GetLocalTime(HrFin);
  WriteLn('Chrono=', TEMPS_ECOULE(HrDebut,HrFin), ' ms');
  ReadLn;
  DoneWinCRT;
end.
Fichiers attachés
Type de fichier : txt estr-tbl.txt (4,3 Ko, 2 affichages)
Type de fichier : pas test_unit_easter.pas (153 octets, 2 affichages)
__________________
L'Art est long et le Temps est court.
Roland Chastain est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 14h24.


 
 
 
 
Partenaires

Hébergement Web