Вы находитесь на странице: 1из 7

Mensajes de error en Turbo Pascal 7.0.

Turbo Pascal genera dos tipos de mensajes de error: mensajes de error del compilador y mensajes de error en tiempo de
ejecucin.

Mensajes de Error de Compilacin.


Si ocurre un error de compilacin mientras se est compilando, el IDE, Turbo Pascal activa la ventana de edicin y
ubica al cursor en el punto del cdigo fuente ms cercano a donde se produjo el error.
# Error Mensaje de error (original)

Mensaje de error (traducido)

Out of memory
Memoria Agotada
Este error ocurre cuando el compilador se queda sin memoria.
Probar estas soluciones, en este orden:
1. Arregle el problema fuera del IDE:
o Eliminar TSRs de memoria.
o Modificar CONFIG.SYS para eliminar controladores innecesarios; tambin reducir ficheros y buffers
(SET FILES = 20, SET BUFFERS = 20).
2. Reconfigurar Turbo Pascal:
o Establecer Compile -> Destination a Disk.
o Establecer Options -> Linker -> Link buffer a Disk.
o Conmutar Graphics Screen Save OFF.
3. Modificar el cdigo fuente:
o Poner units en overlay en el programa
o En Options -> Memory Sizes, reducir Stack Size y Low Heap Limit.
o En Options -> Compiler...:
 Conmutar Range Checking y Stack Checking OFF.
 Conmutar Emulation OFF mientras se depura.
4. Intente usar el IDE para editar el programa, y luego usar el compilador en lnea de comandos (TPC.EXE o
TPCX.EXE) para compilarlo y el Turbo Debugger para depurarlo.
Si ninguna de estas sugerencias ayuda, el programa o unit puede ser demasiado grande para compilar en la cantidad de
memoria disponible; deber dividirla en dos o ms units pequeas.

Identifier expected

Se esperaba un identificador

Se esperaba un identificador en ese punto.


Un identificador es:
El nombre de una variable.
El nombre de un tipo definido por el usuario.
El nombre de una funcin o procedimiento.
El nombre de una constante.
Puede estar intentando declarar cualquiera de lo sealado anteriormente usando para ello una palabra reservada por el lenguaje.
3

Unknown identifier

Identificador desconocido

El literal sealado no fue reconocido como un identificador declarado. O bien, el literal es un identificador que est fuera del
mbito de su declaracin.
La causa ms comn de este error es tipear incorrectamente un identificador.
Por otro lado poner un identificador fuera de su mbito tambin causa este error, por ejemplo cuando se usa una variable
local a un procedimiento o funcin fuera de ese procedimiento o funcin. Tambin cuando se intenta usar una variable,
constante, tipo, funcin o procedimiento de una unidad que no est listada en la clusula uses del fuente actual o que ese
identificador no est en la clusula interface de la unidad donde est declarado dicho identificador.
4

Duplicate identifier

Identificador duplicado

El identificador ya se usa como nombre para una constante, una variable, un tipo, un procedimiento o funcin declarado en el
bloque actual.
5

Syntax error

Error de sintaxis

Se encontr un caracter invlido en el cdigo fuente. O bien, la sentencia est mal formada.
Por ejemplo usar comillas dobles para encerrar una constante de cadena (lo correcto es la comilla simple). Cerrar
incorrectamente esas mismas comillas en una constante de cadena.
6

Error in real constant

Error en constante real

Error in integer constant

Error en constante entera


1 de 7

String constant exceeds line

Constante de cadena excede la lnea

La causa ms comn es olvidar cerrar una constante de cadena con su correspondiente comilla simple.
Un fuente Pascal es vlido hasta la columna 128 del editor
10

Unexpected end of file

Fin de archivo no esperado

Las causas ms comunes que provocan este error son:


El archivo fuente termina sin haberse encontrado la sentencia end. Verificar que los bloques begin .. end
estn balanceados (que a cada begin, le corresponda su end).
El archivo incluido con la directiva de compilacin {$i archivo} con una sentencia sin terminar.
Un comentario no est cerrado.
11

Line too long

Lnea demasiado larga

La cantidad de columnas por lnea en un archivo fuente de Turbo Pascal es de 128 columnas como mximo, ms all de esta
columna el texto no es reconocido y el compilador muestra este error.
La solucin consiste en acortar la lnea de cdigo.
12

Type identifier expected

Se esperaba identificador de tipo

13

Too many open files

Demasiados archivos abiertos

Invalid file name

Nombre de archivo no vlido

14

Se est haciendo referencia a un archivo que no existe o su nombre no conforma el estandar para MS-DOS, es decir 8
caracteres mximo para el nombre, 3 caracteres mximo para la extensin, todo sin espacios en blanco; o cualquier caracter
no vlido (como "?" o "*").
15

File not found

Archivo no encontrado

El compilador no pudo hallar el archivo referenciado.


Si se trata de un .tpu y se cuenta con el cdigo fuente del mismo, compilar la unidad (unit) por separado para crear su
correspondiente .tpu y volver a compilar.
Si no se cuenta con el cdigo fuente, revisar que el path en Options -> Directories... -> "EXE & TPU
Directory" apunta a un directorio donde est el archivo .tpu.
16

Disk full

Disco lleno

17

Invalid compiler directive

Directiva de compilacin no vlida

18

Too many files

Demasiados archivos

19

Undefined type in pointer def

Tipo no identificado en definicin de puntero

20

Variable identifier expected

Se esperaba identificador de variable

21

Error in type

Error en tipo

El smbolo sealado no es vlido para comenzar una declaracin de tipos.


Por ejemplo, el corchete recto ([) no es vlido luego del signo igual (=) en una declaracin de tipo definido por el usuario.
22

Structure too large

Estructura demasiado grande

23

Set base type out of range

Tipo base del conjunto fuera de rango

El tipo base de un conjunto debe ser un subrango con lmites en el rango 0..255, o un tipo enumerado con no ms de 256
valores posibles.
24

File components may not be files or objects

Componentes de archivos no deben ser archivos u objetos

25

Invalid string length

Largo de cadena no vlido

26

Type mismatch

Tipos no coinciden

Este error ocurre por una de las siguientes razones:


En una sentencia de asignacin los tipos a ambos lados del operador ":=" son incompatibles entre s, ya sean
variables o el resultado de una expresin.
Tipos incompatibles entre parmetro actual y el formal en una llamada a un procedimiento o funcin.
Un tipo de expresin que es incompatible con el tipo del ndice en indexacin de arrays.
Tipos incompatibles de los operandos en una expresin.
27

Invalid subrange base type

Tipo subrango base no vlido

Se est declarando un tipo subrango en base a un tipo que no es ordinal.


Por ejemplo, declarar un subrango de reales o strings.
Las siguientes declaraciones son invlidas:
Type
subrango1='hola'..'hello';
subrango2=1.05..3.14;

2 de 7

28

Lower bound greater than upper bound

Lmite inferior es ms grande que el lmite superior

29

Ordinal type expected

Se esperaba tipo ordinal

Se est usando una variable o expresin que no es de un tipo ordinal.


Los tipos de datos no ordinales son: real, string, punteros y estructuras complejas como record o array.
La sentencia case no admite tipos no ordinales.
Las funciones estndares ord(), pred(), succ(), dec() e inc() no admiten tipos no ordinales.
30

Integer constant expected

Se esperaba constante entera

31

Constant expected

Se esperaba una constante

32

Integer or real constant expected

Se esperaba una constante entera o real

33

Pointer Type identifier expected

Se esperaba identificador de tipo de puntero

34

Invalid function result type

Tipo de resultado para la funcin no vlido

El tipo de dato de retorno de la funcin no es un tipo simple.


No se puede declarar una funcin cuyo tipo de dato de retorno sea un tipo de dato complejo tal como record o array.
Si se necesita regresar un tipo de dato complejo, usar un procedimiento con parmetro por referencia, es decir tipo "var".
35
36

Label identifier expected

Se esperaba identificador de etiqueta

BEGIN expected

Se esperaba BEGIN

Se esperaba la palabra reservaba BEGIN en el lugar sealado por el compilador.


Otra causa puede ser bloques begin ... end mal estructurados.
37

END expected

Se esperaba END

Se esperaba la palabra reservaba END en el lugar sealado por el compilador.


Otra causa puede ser bloques begin ... end mal estructurados.
La sentencia CASE necesita de un END para finalizarlo aunque no necesita BEGIN.
38

Integer expression expected

Se esperaba una expresin entera

39

Ordinal expression expected

Se esperaba una expresin ordinal

40

Boolean expression expected

Se esperaba una expresin booleana

41

Operand types do not match

Tipos de operadores no coinciden

En la expresin sealada por el compilador se encontraron uno o ms tipos de datos a los cuales no se les puede aplicar la
operacin indicada.
Por ejemplo, tratar de dividir un integer por un char o tratar de multiplicar un real por un string, etc...
42

Error in expression

Error en la expresin

43

Illegal assignment

Asignacin ilegal

Field identifier expected

Se esperaba identificador de campo

44

En el lugar sealado se esperaba un identificador de campo del registro declarado


Probablemente el identificador no es un campo del registro (record), est mal escrito o no est permitido ese identificador
en ese lugar.
45

Object file too large

Archivo de objeto demasiado grande

46

Undefined external

External no definido

47

Invalid object file record

Registro de archivo en objeto no vlido

48

Code segment too large

Segmento de cdigo demasiado grande

49

Data segment too large

Segmento de datos demasiado grande

El tamao mximo del segmento de datos de un programa est limitado a 65520 bytes (64 KB), incluyendo los datos
declarados por las units usadas.
Si necesita ms datos globales, declare las estructuras ms grandes como punteros, y reserve memoria dinmicamente usando
el procedimiento New()
50

DO expected

Se esperaba DO

51

Invalid PUBLIC definition

Definicin PUBLIC no vlida

52

Invalid EXTRN definition

Definicin EXTRN no vlida

53

Too many EXTRN definitions

Demasiadas definiciones EXTRN

54

OF expected

Se esperaba OF

55

INTERFACE expected

Se esperaba INTERFACE

56

Invalid relocatable reference

Referencia relocalizable no vlida

3 de 7

57

THEN expected

58

TO or DOWNTO expected

Se esperaba THEN

Se esperaba TO o DOWNTO

59

Undefined forward

Forward no definido

Estas son algunas posibles causas de este error:


El procedimiento o funcin se declar en la zona de interface de una unit, pero su declaracin nunca
apareci en la zona de implementation.
El procedimiento o funcin se declar forward, pero su definicin nunca se encontr.
61

Invalid typecast

Cambio de tipo invlido

62

Division by zero

Divisin por cero

Ocurre cuando se usa la unidad CRT en procesadores de mas de 166 MHZ.


Es necesario aplicar un parche que adecua la librera TPL del Turbo PAscal
63

Invalid file type

Tipo de archivo no vlido

64

Cannot read or write variables of this type

No se pueden leer o escribir este tipo de variables

Los procedimientos estndar Read/ReadLn y Write/WriteLn solo se pueden usar con datos de tipos simples, estos
son Real, Byte, Word, Integer, Longint, char, string, boolean. No se pueden usar con arrays,
records, tipos enumerados y punteros.
Los tipos de datos enumerados no se pueden leer usando Read/ReadLn o escribir usando Write/WriteLn.
Suponiendo que se tiene esta declaracin de tipo enumerado:
type
TSemana=(Lunes,Martes,Miercoles,Jueves,Viernes,Sabado,Domingo);
var
Semana: TSemana;
Para poder imprimir el valor de la variable Semana se debera usar la sentencia case de esta manera:
case Semana of
Lunes:Write('Lunes');
Martes:Write('Martes');
Miercoles:Write('Mircoles');
Jueves:Write('Jueves');
Viernes:Write('Viernes');
Sabado:Write('Sbado');
Domingo:Write('Domingo');
end; { case }
Mientras que para asignar un valor sin usar Read/ReadLn directamente, declarar una variable de tipo byte y usar case:
Write('Da de la semana (1-7): ');
ReadLn(Dia);
case Dia of
1:Semana:=Lunes;
2:Semana:=Martes;
3:Semana:=Miercoles;
4:Semana:=Jueves;
5:Semana:=Viernes;
6:Semana:=Sabado;
7:Semana:=Domingo
else WriteLn('Fuera de rango')
end; { case }

65

Pointer variable expected

66

String variable expected

Se esperaba una variable de cadena (string)

67

String expression expected

Se esperaba una expresin de cadena

68

Circular unit reference

Referencia circular entre unidades

69

Unit name mismatch

El nombre de la unidad no coincide

70

Unit version mismatch

La versin de la unidad no coincide

Internal stack overflow

Desbordamiento interno de la pila

71

Se esperaba una variable de puntero (pointer)

El snack (pila) interno del compilador se ha agotado debido a demasiados niveles de sentencias anidadas.
Redistribuya su cdigo de forma que no est tan profundamente anidado.
Por ejemplo, mueva los niveles internos de sentencias anidadas a un procedimiento separado.
72

Unit file format error

Error en el formato de la unidad

73

IMPLEMENTATION expected

Se esperaba IMPLEMENTATION

4 de 7

74

Constant and case types do not match

El tipo en el CASE y la constante no coinciden

El tipo de expresin usada en un caso del case no coincide o no es compatible con el tipo de dato o expresin usada en la
sentencia case.
Por ejemplo, el siguiente cdigo provocar este error:
var
a: char;
...
case a of
27:WriteLn('presion la tecla escape.');
end;
Debido a que la constante 27 es un tipo byte y el tipo de variable empleado en el case es de tipo char. Byte no es
compatible con char.
75

Record or object variable expected

Se esperaba una variable objeto o registro

76

Constant out of range

Constante fuera de rango

Las causas ms comunes que provocan este error pueden ser:


El ndice de un array (vector) excede el tamao declarado de ese array.
Asignar una constante que excede el rango permitido para el tipo de variable que se intenta asignar.
Pasar como parmetro por valor, una constante fuera del rango permitido para el tipo de parmetro declarado en la
funcin o procedimiento.
77

File variable expected

Se esperaba una variable de archivo

78

Pointer expression expected

Se esperaba una expresin de punteros

79

Integer or real expression expected

Se esperaba una expresin entera o real

80

Label not within current block

Etiqueta no est dentro del bloque actual

81

Label already defined

Etiqueta ya definida

82

Undefined label in preceding statement part

Etiqueta no definida en la parte de la sentencia anterior

La etiqueta se declar y referenci en una zona de sentencia, pero nunca se defini.


Ejemplo:
Label 1, 2, 3;
begin
(...sentencias...)
goto 3;
end.
En el ejemplo la etiqueta 3 est declarada y referenciada pero no est definida en ninguna parte del cdigo.
83

Invalid @ argument

Argumento para @ invlido

84

UNIT expected

Se esperaba UNIT

";" expected

Se esperaba ";"

85

El compilador espera un punto y coma donde el compilador seala o en la linea anterior donde se ubica el cursor.
86

":" expected

Se esperaba ":"

87

"," expected

Se esperaba ","

88

"(" expected

Se esperaba "("

89

")" expected

Se esperaba ")"

90

"=" expected

Se esperaba "="

91

":=" expected

Se esperaba ":="

92

"[" or "(." expected

Se esperaba "[" o "(."

93

"]" or ".)" expected

Se esperaba "]" o ".)"

94

"." expected

Se esperaba "."

95

".." expected

Se esperaba ".."

96

Too many variables

Demasiadas variables

97

Invalid FOR control variable

Variable de control en el FOR no vlida

La variable de control usada en la sentencia for no es de tipo simple.


Los tipos de las variables que se pueden usar como variables de control de un ciclo for deben ser tipos simples y ordinales,
como byte, integer, longint, char, subrangos y enumerados
No se pueden usar tipos complejos o no ordinales como real, string, array o registros.
98

Integer variable expected

Se esperaba una variable entera


5 de 7

99

Files and procedure types are not allowed here

100

String length mismatch

Tipos archivos o procedimientos no se permiten aqu

Tamao de la cadena no coincide

101

Invalid ordering of fields

Orden de los campos invlido

102

String constant expected

Se esperaba constante de cadena

Una constante de tipo cadena (string) no aparece donde debera.


Por ejemplo cuando se le pasa como parmetro de un procedimiento o funcin un tipo numrico (integer, real, etc...)
donde en la declaracin de ese procedimiento o funcin se espera un tipo string.
Especialmente cierto con el procedimiento Assign() cuyo segundo parmetro debe ser una constante de cadena.
103

Integer or real variable expected

Se esperaba una variable entera o real

104

Ordinal variable expected

Se esperaba una variable ordinal

105

INLINE error

Error en INLINE

106

Character expression expected

Se esperaba expresin de caracteres

La expresin usada debe ser de tipo caracter.


Probablemente se est haciendo una asignacin entre tipos de datos incompatibles, o uno de los operandos de una expresin
no puede ser computada debido a incompatibilidad de tipos de datos.
107

Too many relocation items

108

Overflow in arithmetic operation

Demasiados items de relocalizacin


Desbordamiento en operacin aritmtica

109

No enclosing FOR, WHILE or REPEAT statement

Sentencias FOR, WHILE o REPEAT no cerradas

110

Debug information table overflow

Desbordamiento en la tabla de informacin de depuracin

112

CASE constant out of range

Constante CASE fuera de rango

113

Error in statement

Error en la sentencia

Este smbolo no puede comenzar una sentencia.


O la sentencia est mal formada.
La situacin en la que generalmente aparece este error es haber cerrado mal la sentencia if. El siguiente ejemplo causar
este error:
if (a > b) then
a:=1;
else
b:=1;
El punto y coma que est inmediatamente antes del else es el responsable del error ya que la sentencia if no termina all
y else por si mismo no es una sentencia sino que es parte de la sentencia if.
La solucin consiste en remover ese punto y coma.
Tener bloques begin ... end no balanceados, es decir, que a cada begin no le corresponda su respectivo end,
tambin puede causar este error.
114

Cannot call an interrupt procedure

No se puede llamar a un procedimiento de interrupcin

116

Must be in 8087 mode to compile this

Debe estar en modo 8087 para compilar esto

Esta construccin slo puede ser compilada en el estado {$N+}.


Las operaciones sobre los tipos reales del 8087 (single, double, extended, y comp) no estn permitidas en el
estado {$N-}.
En el IDE de Turbo Pascal se puede cambiar esto para todo el cdigo fuente en "Options"->"Compiler...">"8087/80287"
117

Target address not found

Direccin de destino no encontrada

118

Include files are not allowed here

Archivos incluidos no se premiten aqu

119

No inherited methods are accessible here

Ningn mtodo heredado se permite aqu

121

Invalid qualifier

Calificador no vlido

122

Invalid variable reference

Referencia a variable no vlida

Esta construccin sigue la sintaxis de una referencia de variable, pero no denota una posicin de memoria.
Probablemente est llamando una funcin por medio de un puntero, pero ha olvidado derreferenciar el resultado.
123

Too many symbols

124

Statement part too large

Demasiados smbolos
Parte ejecutable demasiado grande

126

Files must be var parameters

Archivos deben ser parmetros var

127

Too many conditional symbols

Demasiados smbolos condicionales

128

Misplaced conditional directive

Directiva condicional fuera de lugar

129

ENDIF directive missing

No se encontr la directiva ENDIF


6 de 7

130

Error in initial conditional defines

131

Header does not match previous definition

Error en el defines condicional inicial

Cabecera no coincide con la definicin previa

133

Cannot evaluate this expression

No se puede evaluar esta expresin

Est intentando usar una capacidad no soportada en una expresin constante o en una expresin de depuracin.
Por ejemplo, puede estar intentando usar la funcin Sin() en una declaracin const, o intentando llamar a una funcin
definida por el usuario en una expresin de depuracin.
134

Expression incorrectly terminated

Expresin incorrectamente terminada

135

Invalid format specifier

Especificador de formato no vlido

136

Invalid indirect reference

Referencia indirecta no vlida

137

Structured variables are not allowed here

Variables de estructura no se permiten aqu

138

Cannot evaluate without System unit

No se puede evaluar sin la unidad System

139

Cannot access this symbol

No se puede acceder a este smbolo

140

Invalid floating point operation

Operacin de punto flotante no vlida

141

Cannot compile overlays to memory

No se pueden compilar overlays en memoria

142

Pointer or procedural variable expected

Se esperaba una variable de puntero o procedimiento

143

Invalid procedure or function reference

Referencia a procedimiento o funcin no valida

144

Cannot overlay this unit

No se puede convertir en overlay esta unidad

145

Too many nested scopes

Demasiados mbitos de anidacin

146

File access denied

Acceso a archivo denegado

147

Object type expected

Se esperaba un tipo objeto

148

Local object types are not allowed

Tipos de objetos locales no se permiten aqu

149

VIRTUAL expected

Se esperaba VIRTUAL

150

Method identifier expected

Se esperaba identificador de mtodo

El identificador sealado no es un mtodo de un objeto.


151

Virtual constructors are not allowed

152

Constructor identifier expected

Constructores virtuales no se permiten aqu


Se esperaba identificador de contructor

153

Destructor identifier expected

Se esperaba identificador de destructor

154

Fail only allowed within constructors

Fail solo se permite dentro de los constructores

155

Invalid combination of opcode and operands

Combinacin de opcode y operandos no vlida

156

Memory reference expected

Se esperaba referencia a memoria

157

Cannot add or subtract relocatable symbols

No se pueden sumar o restar smbolos relocalizables

158

Invalid register combination

Combinacin de registros no vlida

159

286/287 instructions are not enabled

No estn habilitadas las intrucciones 286/287

160

Invalid symbol reference

Referencia a smbolo no vlida

161

Code generation error

Error de generacin de cdigo

162

ASM expected

Se esperaba ASM

163

Duplicate dynamic method index

ndice a mtodo dinmico duplicado

164

Duplicate resource identifier

Identificador de recurso duplicado

165

Duplicate or invalid export index

ndice de exportacin duplicado o no vlido

166

Procedure or function identifier expected

Se esperaba identificador de funcin o procedimiento

167

Cannot export this symbol

No se puede exportar este smbolo

168

Duplicate export name

Nombre de exportacin duplicado

169

Executable file header too large

Encabezado del archivo ejecutable demasiado grande

170

Too many segments

Demasiados segmentos

7 de 7

Вам также может понравиться