
FAQ PascalConsultez toutes les FAQ
Nombre d'auteurs : 10, nombre de questions : 402, derni�re mise � jour : 7 janvier 2018
Bienvenue dans la F.A.Q. Pascal !
Celle-ci rassemble les r�ponses aux questions les plus fr�quemment pos�es sur le langage Pascal et tous ses outils de programmation. Si elle n'a pas pour vocation de r�pondre � toutes les interrogations possibles, elle reste une bonne base de connaissances sur le Pascal, et ne demande qu'� �tre enrichie par vos exp�riences personnelles.
Nous vous invitons � proposer vos propres questions/r�ponses directement dans la FAQ ou, si vous souhaitez apporter une modification � une question/r�ponse existante, � la poster dans le fil de discussion renseign� ci-dessous.
Nous vous souhaitons une bonne lecture !
L'�quipe Pascal.
1. Introduction (5)
2. Le langage Pascal (67)
2.1. Les cha�nes de caract�res de type string (8)
- Comment acc�der � un caract�re pr�cis d'une cha�ne de caract�res ?
- Comment d�terminer la longueur d'une cha�ne ?
- Comment concat�ner (ajouter) deux ou plusieurs cha�nes ?
- Comment conna�tre la position d'une sous-cha�ne dans une cha�ne ?
- Comment copier un extrait de cha�ne de caract�res ?
- Comment supprimer une partie de cha�ne de caract�res ?
- Comment convertir une cha�ne en nombre ?
- Comment convertir un nombre en cha�ne de caract�res ?
2.2. Les cha�nes de caract�res � z�ro terminal (12)
- Qu'est-ce qu'une cha�ne AZT ?
- Comment convertir une cha�ne AZT en string et vice-versa ?
- Comment affecter une valeur � une cha�ne AZT ?
- Comment initialiser une cha�ne AZT vide ?
- Comment tronquer une cha�ne AZT ?
- Comment d�terminer la longueur d'une cha�ne AZT ?
- Comment copier une cha�ne AZT ?
- Comment comparer deux cha�nes AZT ?
- Comment rechercher la position d'une cha�ne AZT dans une autre ?
- Comment concat�ner (ajouter) deux cha�nes AZT ?
- Comment allouer une cha�ne AZT dans le tas ?
- Comment utiliser les cha�nes AZT avec les instructions standard du Pascal comme WriteLn ?
2.3. Les nombres (9)
- Comment tirer un nombre au hasard ?
- Comment passer du binaire au d�cimal et vice-versa ?
- Comment transformer un nombre r�el en nombre entier ?
- Comment afficher un nombre sous forme hexad�cimale ?
- Comment formater l'affichage d'un nombre r�el ?
- Comment calculer une puissance d'un nombre ?
- Comment �valuer un polyn�me en un point ?
- Comment convertir un entier en base de num�ration quelconque ?
- Comment obtenir les nombres premiers inf�rieurs � un entier donn� N ?
2.4. Les fichiers (10)
- Comment copier un fichier ?
- Comment d�placer un fichier ?
- Comment supprimer un fichier ?
- Comment renommer un fichier ?
- Comment tester l'existence d'un fichier ?
- Comment rechercher un ou plusieurs fichiers sur disque ?
- Pourquoi ne peut-on ouvrir un fichier alors qu'il existe ?
- Comment cr�er un dossier (r�pertoire) ?
- Comment supprimer un dossier (r�pertoire) ?
- Comment d�terminer le nom de volume d'un disque ?
2.5. Les erreurs courantes (3)
2.6. G�n�ralit�s (6)
- Comment marquer une pause dans un programme ?
- Comment d�tecter les erreurs d'entr�es/sorties en temps r�el ?
- Comment acc�der aux param�tres pass�s en ligne de commande ?
- Comment r�cup�rer facilement le nom de l'application ?
- Comment d�sactiver le Ctrl+C et le Ctrl+Break ?
- Comment peut-on passer en mode texte sur 50 lignes ?
- Qu'est-ce qu'un mot r�serv� ?
- Qu'est-ce qu'un type scalaire ?
- Qu'est-ce qu'un type structur� ?
- A quoi sert la directive packed ?
- Qu'est-ce que le transtypage ?
- Comment d�clarer une constante typ�e de type structur� ?
- Quelle est la diff�rence entre une proc�dure et une fonction ?
- Comment d�clarer des proc�dures qui s'appellent mutuellement ?
- Deux unit�s peuvent-elles se r�f�rencer mutuellement ?
- Quels sont les modes de transmission d'un param�tre � une proc�dure ou fonction ?
- Un param�tre transmis par valeur est-il toujours d�pos� sur la pile ?
- Pourquoi est-il pr�f�rable de transmettre un param�tre comme constante plut�t que par valeur ?
- Une fonction peut-elle retourner un r�sultat de type structur� ?
- Comment simplifier une imbrication de blocs If...then...else ?
- Faut-il mettre un point-virgule � la fin d'une instruction pr�c�dant un end ?
- Comment se sert-on de l'instruction goto ?
- Comment utiliser la compilation conditionnelle ?
- Pourquoi peut-il �tre utile d'inclure de l'Assembleur dans un programme ?
- Comment inclure de l'Assembleur dans un programme ?
3. Le fonctionnement du syst�me (8)
3.1. Le fonctionnement du syst�me G�n�ralit�s (4)
3.2. Windows (3)
3.3. Linux (1)
4. Les diff�rents compilateurs (322)
4.1. Turbo Pascal (254)
4.1.1. Turbo Pascal G�n�ralit�s (12)
- Peut-on cr�er un programme Windows avec Turbo Pascal ?
- Quelles sont les directives de compilation ?
- Quels sont les intervalles de valeurs des types entiers de Turbo Pascal ?
- Comment �viter que l'�cran ne d�file quand on �crit en bas � droite ?
- Comment d�tecter l'appui sur les touches �tendues du clavier ?
- Comment vider le tampon du clavier ?
- Comment imprimer du texte ?
- Comment imprimer du texte mis en forme ?
- Comment ajouter du son � un programme ?
- Comment initialiser l'unit� Graph ?
- Comment ex�cuter un programme externe ?
- Comment modifier ou �teindre le curseur texte ?
4.1.2. Turbo Pascal Installation, configuration et fonctionnement de l'EDI (9)
- O� t�l�charger gratuitement Turbo Pascal 7 ?
- Comment installer Turbo Pascal sous Windows XP ou Windows 2000 ?
- Comment puis-je passer rapidement d'une fen�tre de code � une autre ?
- Pourquoi l'�diteur n'applique-t-il pas la coloration syntaxique pour certains fichiers ?
- Comment faire en sorte que l'EDI m�morise la configuration courante ?
- Comment faire en sorte que l'EDI rouvre automatiquement les derniers fichiers utilis�s ?
- Comment fixer les r�pertoires d'ouverture et d'enregistrement ?
- Pourquoi Turbo Pascal ne cr�e-t-il pas d'ex�cutable sur le disque ?
- Dois-je absolument utiliser l'EDI pour compiler mes programmes ?
4.1.3. D�bogueur int�gr� (4)
4.1.4. Unit�s et biblioth�ques sp�cifiques (4)
4.1.5. Programmation avanc�e en Turbo Pascal (13)
- Comment allouer plus de m�moire que les 640 kb de m�moire conventionnelle ?
- Comment r�duire la m�moire utilis�e par un programme ?
- Comment tester si un disque existe sur le syst�me ?
- Comment d�tecter l'appui sur les touches de contr�le ?
- Comment d�tecter l'appui sur les touches F11 et F12 ?
- Que signifient appel far et appel near ?
- Comment d�tourner une interruption ?
- Comment inclure des instructions 32 bits dans un programme ?
- Comment r�cup�rer en Assembleur un param�tre transmis par adresse ?
- Comment une fonction �crite en Assembleur peut-elle retourner une valeur ?
- Comment ajouter un module objet �crit en Assembleur � un programme ?
- Une variable d�finie dans un module objet peut-elle �tre utilis�e dans le programme ?
- Comment inclure du code �crit en C dans un programme Pascal ?
4.1.6. Erreurs de compilation (163)
- Erreur de compilation 1 - Out of memory
- Erreur de compilation 2 - Identifier expected
- Erreur de compilation 3 - Unknown identifier
- Erreur de compilation 4 - Duplicate identifier
- Erreur de compilation 5 - Syntax error
- Erreur de compilation 6 - Error in real constant
- Erreur de compilation 7 - Error in integer constant
- Erreur de compilation 8 - String constant exceeds line
- Erreur de compilation 10 - Unexpected end of file
- Erreur de compilation 11 - Line too long
- Erreur de compilation 12 - Type identifier expected
- Erreur de compilation 13 - Too many open files
- Erreur de compilation 14 - Invalid file name
- Erreur de compilation 15 - File not found
- Erreur de compilation 16 - Disk full
- Erreur de compilation 17 - Invalid compiler directive
- Erreur de compilation 18 - Too many files
- Erreur de compilation 19 - Undefined type in pointer def
- Erreur de compilation 20 - Variable identifier expected
- Erreur de compilation 21 - Error in type
- Erreur de compilation 22 - Structure too large
- Erreur de compilation 23 - Set base type out of range
- Erreur de compilation 24 - File components may not be files or objects
- Erreur de compilation 25 - Invalid string length
- Erreur de compilation 26 - Type mismatch
- Erreur de compilation 27 - Invalid subrange base type
- Erreur de compilation 28 - Lower bound greater than upper bound
- Erreur de compilation 29 - Ordinal type expected
- Erreur de compilation 30 - Integer constant expected
- Erreur de compilation 31 - Constant expected
- Erreur de compilation 32 - Integer or real constant expected
- Erreur de compilation 33 - Pointer type identifier expected
- Erreur de compilation 34 - Invalid function result type
- Erreur de compilation 35 - Label identifier expected
- Erreur de compilation 36 - BEGIN expected
- Erreur de compilation 37 - END expected
- Erreur de compilation 38 - Integer expression expected
- Erreur de compilation 39 - Ordinal expression expected
- Erreur de compilation 40 - Boolean expression expected
- Erreur de compilation 41 - Operand types do not match operator
- Erreur de compilation 42 - Error in expression
- Erreur de compilation 43 - Illegal assignment
- Erreur de compilation 44 - Field identifier expected
- Erreur de compilation 45 - Object file too large
- Erreur de compilation 46 - Undefined external
- Erreur de compilation 47 - Invalid object file record
- Erreur de compilation 48 - Code segment too large
- Erreur de compilation 49 - Data segment too large
- Erreur de compilation 50 - DO expected
- Erreur de compilation 51 - Invalid PUBLIC definition
- Erreur de compilation 52 - Invalid EXTRN definition
- Erreur de compilation 53 - Too many EXTRN definitions
- Erreur de compilation 54 - OF expected
- Erreur de compilation 55 - INTERFACE expected
- Erreur de compilation 56 - Invalid relocatable reference
- Erreur de compilation 57 - THEN expected
- Erreur de compilation 58 - TO or DOWNTO expected
- Erreur de compilation 59 - Undefined forward
- Erreur de compilation 61 - Invalid typecast
- Erreur de compilation 62 - Division by zero
- Erreur de compilation 63 - Invalid file type
- Erreur de compilation 64 - Cannot Read or Write variables of this type
- Erreur de compilation 65 - Pointer variable expected
- Erreur de compilation 66 - String variable expected
- Erreur de compilation 67 - String expression expected
- Erreur de compilation 68 - Circular unit reference
- Erreur de compilation 69 - Unit name mismatch
- Erreur de compilation 70 - Unit version mismatch
- Erreur de compilation 71 - Internal stack overflow
- Erreur de compilation 72 - Unit file format error
- Erreur de compilation 73 - IMPLEMENTATION expected
- Erreur de compilation 74 - Constant and case types do not match
- Erreur de compilation 75 - Record or object variable expected
- Erreur de compilation 76 - Constant out of range
- Erreur de compilation 77 - File variable expected
- Erreur de compilation 78 - Pointer expression expected
- Erreur de compilation 79 - Integer or real expression expected
- Erreur de compilation 80 - Label not within current block
- Erreur de compilation 81 - Label already defined
- Erreur de compilation 82 - Undefined label in preceding statement part
- Erreur de compilation 83 - Invalid @ argument
- Erreur de compilation 84 - UNIT expected
- Erreur de compilation 85 - ";" expected
- Erreur de compilation 86 - ":" expected
- Erreur de compilation 87 - "," expected
- Erreur de compilation 88 - "(" expected
- Erreur de compilation 89 - ")" expected
- Erreur de compilation 90 - "=" expected
- Erreur de compilation 91 - ":=" expected
- Erreur de compilation 92 - "[" or "(." expected
- Erreur de compilation 93 - "]" or ".)" expected
- Erreur de compilation 94 - "." expected
- Erreur de compilation 95 - ".." expected
- Erreur de compilation 96 - Too many variables
- Erreur de compilation 97 - Invalid FOR control variable
- Erreur de compilation 98 - Integer variable expected
- Erreur de compilation 99 - File and procedure types are not allowed here
- Erreur de compilation 100 - String length mismatch
- Erreur de compilation 101 - Invalid ordering of fields
- Erreur de compilation 102 - String constant expected
- Erreur de compilation 103 - Integer or real variable expected
- Erreur de compilation 104 - Ordinal variable expected
- Erreur de compilation 105 - INLINE error
- Erreur de compilation 106 - Character expression expected
- Erreur de compilation 107 - Too many relocation items
- Erreur de compilation 108 - Overflow in arithmetic operation
- Erreur de compilation 109 - No enclosing FOR, WHILE, or REPEAT statement
- Erreur de compilation 110 - Debug information table overflow
- Erreur de compilation 112 - CASE constant out of range
- Erreur de compilation 113 - Error in statement
- Erreur de compilation 114 - Cannot call an interrupt procedure
- Erreur de compilation 116 - Must be in 8087 mode to compile this
- Erreur de compilation 117 - Target address not found
- Erreur de compilation 118 - Include files are not allowed here
- Erreur de compilation 119 - No inherited methods are accessible here
- Erreur de compilation 121 - Invalid qualifier
- Erreur de compilation 122 - Invalid variable reference
- Erreur de compilation 123 - Too many symbols
- Erreur de compilation 124 - Statement part too large
- Erreur de compilation 126 - Files must be var parameters
- Erreur de compilation 127 - Too many conditional symbols
- Erreur de compilation 128 - Misplaced conditional directive
- Erreur de compilation 129 - ENDIF directive missing
- Erreur de compilation 130 - Error in initial conditional defines
- Erreur de compilation 131 - Header does not match previous definition
- Erreur de compilation 133 - Cannot evaluate this expression
- Erreur de compilation 134 - Expression incorrectly terminated
- Erreur de compilation 135 - Invalid format specifier
- Erreur de compilation 136 - Invalid indirect reference
- Erreur de compilation 137 - Structured variables are not allowed here
- Erreur de compilation 138 - Cannot evaluate without System unit
- Erreur de compilation 139 - Cannot access this symbol
- Erreur de compilation 140 - Invalid floating-point operation
- Erreur de compilation 141 - Cannot compile overlays to memory
- Erreur de compilation 142 - Pointer or procedural variable expected
- Erreur de compilation 143 - Invalid procedure or function reference
- Erreur de compilation 144 - Cannot overlay this unit
- Erreur de compilation 145 - Too many nested scopes
- Erreur de compilation 146 - File access denied
- Erreur de compilation 147 - Object type expected
- Erreur de compilation 148 - Local object types are not allowed
- Erreur de compilation 149 - VIRTUAL expected
- Erreur de compilation 150 - Method identifier expected
- Erreur de compilation 151 - Virtual constructors are not allowed
- Erreur de compilation 152 - Constructor identifier expected
- Erreur de compilation 153 - Destructor identifier expected
- Erreur de compilation 154 - Fail only allowed within constructors
- Erreur de compilation 155 - Invalid combination of opcode and operands
- Erreur de compilation 156 - Memory reference expected
- Erreur de compilation 157 - Cannot add or subtract relocatable symbols
- Erreur de compilation 158 - Invalid register combination
- Erreur de compilation 159 - 286/287 instructions are not enabled
- Erreur de compilation 160 - Invalid symbol reference
- Erreur de compilation 161 - Code generation error
- Erreur de compilation 162 - ASM expected
- Erreur de compilation 163 - Duplicate dynamic method index
- Erreur de compilation 164 - Duplicate resource identifier
- Erreur de compilation 165 - Duplicate or invalid export index
- Erreur de compilation 166 - Procedure or function identifier expected
- Erreur de compilation 167 - Cannot export this symbol
- Erreur de compilation 168 - Duplicate export name
- Erreur de compilation 169 - Executable file header too large
- Erreur de compilation 170 - Too many segments
4.1.7. Erreurs d'ex�cution (47)
4.1.7.1. Erreurs DOS (10)
- Runtime error 1 - Invalid function number
- Runtime error 2 - File not found
- Runtime error 3 - Path not found
- Runtime error 4 - Too many open files
- Runtime error 5 - File access denied
- Runtime error 6 - Invalid file handle
- Runtime error 12 - Invalid file access code
- Runtime error 15 - Invalid drive number
- Runtime error 16 - Cannot remove current directory
- Runtime error 17 - Cannot rename across drives
4.1.7.2. Erreurs d'entr�es-sorties (7)
4.1.7.3. Erreurs critiques (13)
- Runtime error 150 - Disk is write-protected
- Runtime error 151 - Unknown unit
- Runtime error 152 - Drive not ready
- Runtime error 153 - Unknown command
- Runtime error 154 - CRC error in data
- Runtime error 155 - Bad drive request struct length
- Runtime error 156 - Disk seek error
- Runtime error 157 - Unknown media type
- Runtime error 158 - Sector not found
- Runtime error 159 - Printer out of paper
- Runtime error 160 - Device write fault
- Runtime error 161 - Device read fault
- Runtime error 162 - Hardware failure
4.1.7.4. Erreurs fatales (17)
- Runtime error 200 - Division by zero
- Runtime error 201 - Range check error
- Runtime error 202 - Stack overflow error
- Runtime error 203 - Heap overflow error
- Runtime error 204 - Invalid pointer operation
- Runtime error 205 - Floating point overflow
- Runtime error 206 - Floating point underflow
- Runtime error 207 - Invalid floating point operation
- Runtime error 208 - Overlay manager not installed
- Runtime error 209 - Overlay file read error
- Runtime error 210 - Object not initialized
- Runtime error 211 - Call to abstract method
- Runtime error 212 - Stream registration error
- Runtime error 213 - Collection index out of range
- Runtime error 214 - Collection overflow error
- Runtime error 215 - Arithmetic overflow error
- Runtime error 216 - General protection fault
4.1.8. Turbo Pascal Bugs (2)
4.2. Free Pascal (57)
4.2.1. Free Pascal G�n�ralit�s (1)
4.2.2. Les entrailles de Free Pascal (1)
4.2.3. Plateforme Windows (3)
4.2.4. Free Pascal et la Programmation Orient�e Objet (52)
4.2.4.1. Notions fondamentales (19)
- Comment avoir acc�s � la Programmation Orient�e Objet avec Free Pascal ?
- Qu'est-ce qu'une classe en Pascal ?
- Comment d�clarer une classe en Pascal ?
- Pourquoi est-il pr�f�rable de d�clarer une classe en faisant pr�c�der son nom d'un T ?
- O� peut-on d�clarer une classe ?
- Qu'est-ce qu'un objet en Pascal ?
- Qu'appelle-t-on l'instance d'une classe en Pascal ?
- Comment instancier une classe en Pascal ?
- Qu'est-ce que le param�tre implicite Self ?
- Qu'est-ce qu'un champ ou un attribut d'une classe en Pascal ?
- Qu'appelle-t-on l'encapsulation des donn�es dans une classe ?
- Qu'appelle-t-on la port�e d'un �l�ment d'une classe ?
- Quelle port�e appliquer � un �l�ment d'une classe ?
- Faut-il initialiser les champs et les propri�t�s lors de l'instanciation d'une classe ?
- Qu'est-ce que l'h�ritage ?
- Qu'est-ce que le polymorphisme ?
- � quoi sert l'op�rateur Is ?
- � quoi sert l'op�rateur As ?
- Comment retrouver les anc�tres d'une classe ?
4.2.4.2. Cr�ation et lib�ration (12)
- Qu'est-ce qu'un constructeur ?
- Comment disposer de plusieurs constructeurs ?
- Quand faut-il h�riter dans un constructeur ?
- Comment g�rer une erreur lors de l'instanciation d'une classe ?
- Qu'est-ce qu'un destructeur ?
- Pourquoi et comment lib�rer un objet apr�s son utilisation en Pascal ?
- Quand faut-il h�riter dans un destructeur ?
- Pourquoi ne faut-il pas utiliser Destroy pour d�truire une instance de classe ?
- A quoi sert Nil pour un objet ?
- Peut-on lib�rer un objet par une simple affectation � Nil ?
- Comment s'assurer qu'une instance de classe sera toujours lib�r�e ?
- Quand faut-il faire appel � la proc�dure FreeAndNil ?
4.2.4.3. Les m�thodes (12)
- Qu'est-ce qu'une m�thode en Pascal ?
- D'o� proviennent des m�thodes comme Free et Create alors qu'elles ne sont pas d�clar�es par le programmeur ?
- Qu'appelle-t-on une m�thode statique ?
- Qu'appelle-t-on une m�thode virtuelle ?
- A quoi sert le mot r�serv� inherited ?
- A quoi sert la directive override ?
- Qu'est-ce qu'une m�thode marqu�e dynamic ?
- A quoi sert la directive reintroduce ?
- Qu'est-ce qu'une m�thode abstraite ?
- Quand utiliser une classe qui comprend des m�thodes abstraites ?
- Qu'est-ce qu'une m�thode de classe ?
- Qu'est-ce qu'une m�thode statique de classe ?
4.2.4.4. Les propri�t�s (9)
- Qu'est-ce qu'une propri�t� en Pascal ?
- Quelle est la visibilit� par d�faut d'un champ dans une classe ?
- Qu'est-ce qu'un setter et un getter ?
- Quelles diff�rences y a-t-il entre une propri�t� et une variable ?
- A quoi sert le sp�cificateur stored ?
- A quoi sert le sp�cificateur default ?
- A quoi set le sp�cificateur nodefault ?
- Pourquoi certaines propri�t�s apparaissent-elles avec une simple d�claration sans type ?
- Qu'est-ce qu'une propri�t� index�e ?
4.3. Virtual Pascal (11)
4.3.1. Virtual Pascal G�n�ralit�s (8)
- O� t�l�charger l'EDI ?
- Quelles plateformes sont support�es ?
- Virtual Pascal est-il compatible avec Turbo Pascal ?
- Pourquoi est-il impossible de recompiler des sources Turbo Pascal utilisant l'unit� Graph ?
- Virtual Pascal est-il compatible avec Delphi ?
- Quels sont les intervalles de valeurs des types entiers de Virtual Pascal ?
- Comment taper les accolades sur un clavier fran�ais ?
- Comment permettre l'utilisation de la souris dans l'IDE sous Windows 10 ?
4.3.2. Les entrailles de Virtual Pascal (2)
4.3.3. Virtual Pascal Plateforme Windows (1)
Les sources pr�sent�es sur cette page sont libres de droits et vous pouvez les utiliser � votre convenance. Par contre, la page de pr�sentation constitue une �uvre intellectuelle prot�g�e par les droits d'auteur. Copyright � 2025 Developpez Developpez LLC. Tous droits r�serv�s Developpez LLC. Aucune reproduction, m�me partielle, ne peut �tre faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'� trois ans de prison et jusqu'� 300 000 � de dommages et int�r�ts.