
1
TURBO PASCAL ERRORS CODES
(CÁC MÃ LỖI CỦA TURBO PASCAL)
Dịch và chú giải từ “Turbo Pascal 6: The Complete Reference”
Vương Đức Bình
Lời người dịch:
Đối với người mới học lập trình, viết chương trình bị lỗi là chuyện “thường ngày ở huyện”. Mỗi ngôn ngữ đều dự trù hằng
trăm, nếu không nói là hàng ngàn, thông báo lỗi khác nhau như một sự trợ giúp để chúng ta khắc phục lỗi đó. Một số thông báo lỗi thì
đơn giản, rõ ràng nhưng một số thông báo lỗi có thể dẫn những lập trình viên “mới chập chửng” vào một trò chơi trốn tìm rất đau đầu
đến nỗi có khi chính sự trợ giúp này lại gây ra vấn đề còn lớn hơn cả bản thân lỗi. Vì lẽ đó đọc hiểu được các thông báo lỗi và từ đó
suy ra cách khắc phục lỗi cũng là một yêu cầu quan trọng trong quá trình học lập trình.
Mặt khác, thực tế đa số sinh viên CNTT trong năm đầu thường không đủ vốn từ vựng về thuật ngữ tin học, cộng với sự yếu
kém về giảng dạy ngoại ngữ thâm căn cố đế do các trường PTTH gây ra làm cho sinh viên không đủ năng lực đọc hiểu các thông báo
lỗi trực tiếp bằng tiếng Anh. Tài liệu này chỉ mong làm được có một việc: giúp các bạn sinh viên đó tiếp cận dễ hơn với việc đọc hiểu
thông báo lỗi. Nhưng các bạn cũng đừng ỷ lại vào tài liệu này. Tốt hơn hết các bạn nên tập làm quen dần với việc đọc trực tiếp, suy
nghĩ trực tiếp bằng tiếng Anh. Tiếng Việt thì đẹp đẻ và là ngôn ngữ của cha ông mà chúng ta cần trân quí và làm cho nó phát triển.
Nhưng ở đây là khoa học kỹ thuật, bạn cần xây dựng khả năng tiếp cận thật nhanh thông tin khoa học kỹ thuật.
Để các bạn dễ tham khảo/so sánh tôi sẽ trình bày bản dịch này dưới dạng song ngữ. Tôi không hoàn toàn giữ nguyên gốc so
với nguyên bản mà có thêm ít nhiều chú thích và thêm phần nguyên nhân phát sinh ra lỗi và cách khắc phục. Một số lỗi sẽ không có
phần này (cách khắc phục) vì có thể tôi chưa gặp lỗi đó bao giờ … cho nên tôi không có kinh nghiệm khắc phục. Nếu bạn biết, xin
thông báo cho tôi trên forum của Tổ bộ môn CNTT http://tobomoncntt.freeforums.org/, tôi sẽ rất cảm ơn và tôi sẽ bổ sung vào đây khi
có thể.
I. Compiler Error Messages
(Các thông báo lỗi trong quá trình biên dịch)
Compiler error messages refer to problems in your code or programming environment that prevent Turbo Pascal from produccing an
executable file. In the integrated development environment, Turbo Pascal will attempt to locate the source-code location of the error.
Các thông báo lỗi trong quá trình biên dịch liên quan đến những vấn đề trong mã chương trình hoặc môi trường lập trình gây cản ngại
cho Turbo Pascal khi tạo ra file thực thi. Trong môi trường phát triển tích hợp, Turbo Pascal sẽ cố gắng định vị trí lỗi trong mã nguồn.
Lưu ý của người dịch:
a) Nếu bạn sử dụng IDE (integrated development environment) thông thường vị trí phát sinh ra lỗi trong mã nguồn nằm ngay
trước vị trí con trỏ văn bản. Còn nếu bạn dịch mã nguồn FILENAME.PAS bằng TPC.EXE (Turbo Pascal Compiler) theo cú
pháp

2
[drive:][path]TPC.EXE FILENAME.PAS
thì một thông báo lỗi dạng:
Error nnn: Error message
Với nnn là mã lỗi và dòng lệnh bị lỗi sẽ được hiển thị sau dấu nhắc hệ thống cùng với một dấu “^” chỉ vị trí phát sinh lỗi.
b) Tiếng Anh và tiếng Việt không hoàn toàn tương đồng cho nên với cùng một thuật ngữ tiếng Anh tôi có thể sử dụng khá nhiều
cách nói tiếng Việt khác nhau để dịch. Ví dụ rõ nhất là đối với từ “expected”, tôi có thể dịch là “chờ, đợi, chưa thấy, không
thấy, yêu cầu, …tùy vào ngữ cảnh mà thuật ngữ đó được sử dụng … và đôi khi còn tùy vào tình huống lỗi. Trong trường hợp
này - rất tiếc – đôi khi suy nghĩ trực tiếp bằng tiếng Anh là dễ dàng hơn.
Mã lỗi và thông báo lỗi
Ý nghĩa
Các nguyên nhân có thể
Hướng khắc phục
1 Out of memory
Không đủ vùng nhớ
1. Mã chương trình quá
lớn.
2. Mã dữ liệu quá lớn.
3. Bị virus.
4. Các chương trình
thường trú chiếm bớt
vùng nhớ qui ước
(conventional
memory).
Hoặc phải gở bỏ các chương
trình đang chạy trong chế độ
thường trú (SIDEKICK, v.v.)
hoặc xem xét liệu virus có
đang chiếm mất vùng nhớ
hoặc phải sử dụng biện pháp
overlay. Thông thường điều
này chỉ xảy ra trong môi
trường thực (Real mode).
Nếu bạn chạy Borland Pascal
trong môi trường giả lập
được bảo vệ (protected
mode) của Windows thì
không xảy ra trường hợp này
được (Windows cho phép sử
dụng bộ nhớ ảo)
2 Identifier expected
Chờ một danh biểu
3 Unknown identifier
Không biết danh biểu này
1. Quên khai báo biến.
2. Gõ sai tên biến trong
chương trình.
3. Gọi tới biến, danh biểu
này ở ngoài tầm vực
của nó.
1. Khai báo danh biểu này.
2. Sửa chữa lỗi gõ sai.
3. Xem xét lại tầm vực của
danh biểu.

3
4 Duplicate identifier
Danh biểu bị trùng lặp
1. Tên biến trùng với tên
chương trình.
2. Khai báo lại tên biến
với kiểu dữ liệu khác
trong cùng một khối.
1. Đặt lại tên biến hoặc tên
chương trình.
5 Syntax error
Lỗi cú pháp
Sửa lỗi cú pháp
6 Error in real constant
Lối về hằng số thực
7 Error in integer constant
Lỗi về hằng số nguyên
8 String constant exceeds line
Chuỗi dài quá một dòng
Quên dấu nháy “’” kết
thúc chuỗi.Thông thường
là do lập trình viên quên
dấu nháy kết thúc chuỗi
trong câu lệnh WRITE
hoặc WRITELN.
Bổ sung dấu nháy đằng sau
chuỗi.
9 Too many nested files
Quá nhiều file lồng nhau
10 Unexpected end of file
Không tìm thấy kết thúc file
Quên từ khóa “END.”
Thông thường do lập trình
viên quên hoặc dùng “END;”
ở cuối chương trình chính.
11 Line too long
Dòng quá dài
Câu lệnh viết dài quá cột
128.
Ngắt câu lệnh thành nhiều
dòng.
12 Type identifier expected
Không thấy kiểu của danh
biểu
Quên khai báo kiểu của
biến.
13 Too many open files
Mở quá nhiều file cùng lúc
Mở file C:\CONFIG.SYS
sửa lại dòng lệnh
Files=<số>. Hệ điều hành
DOS dùng con số này để
quyết định cho phép mở bao
nhiêu file cùng một lúc. Tăng
<số> cho thích hợp với
chương trình đang viết. Mặc
định <số> là 15 nếu không
được khai báo trong
CONFIG.SYS. Không gặp
lỗi này nếu chạy trong môi
trường giả lập của Windows.

4
14 Invalid filename
Tên file không hợp lệ.
Không tìm thấy thư mục
đã định nghĩa trong
[Options >Directories ]
để lưu file này
Thư mục để lưu file này
bị xác lập thuộc tính
Hidden hoặc Read Only
Khai báo lại thư mục hoặc
xác định thư mục có thuộc
tính Archive, bỏ thuộc tính
hidden, bỏ thuộc tính read
only.
15 File not found
Không tìm thấy file
Xem lại đường dẫn tới tên
file
16 Disk full
Đĩa bị đầy
Xóa bớt các file không cần
thiết trên đĩa để lấy thêm chổ
trống cho thao tác trên đĩa.
17 Invalid compiler directive
Dẫn hướng biên dịch không
hợp lệ
Dùng một dẫn hướng
biên dịch không có trong
qui định
Xem lại khai báo dẫn hướng
biên dịch. Gõ CTRL-O-O để
xem các dẫn hướng biên dịch
được Pascal hỗ trợ mặc định.
18 Too many files
Có quá nhiều file
19 Undefined type in pointer
definition
Định nghĩa con trỏ trỏ tới
một kiểu chưa được định
nghĩa
Xem lại định nghĩa kiểu sau
từ khóa TYPE / Xem lại tên
kiểu coi có gõ nhầm không.
20 Variable identifier expected
Yêu cầu danh biểu là biến
Thông thường là do
truyền trị cho tham biến
Chỉ được phép truyền biến
cho tham biến mà thôi.
21 Error in type
Lỗi về kiểu dữ liệu
Xem lại kiểu dữ liệu qui định
ở vị trí này.
22 Structure too large
Cấu trúc quá lớn
23 Set base type out of range
Kiểu cơ sở bị vượt quá phạm
vi dữ liệu
24 File components may not be
files or objects
Không cho phép thành phần
của file là file hoặc đối tượng
25 Invalid string length
Chiều dài chuỗi không hợp lệ
26 Type mismatch
Không khớp kiểu dữ liệu
Hai vế của phép gán
không thuộc về cùng một
kiểu dữ liệu
Hoặc khai báo lại kiểu dữ
liệu cho phù hợp hoặc phải
dùng biện pháp ép kiểu (type
casting).
27 Invalid subrange base type
Phạm vi không khớp với
phạm vi của kiểu cơ sở

5
28 Lower bound greater than upper
bound
Cận dưới lớn hơn cận trên
Khai báo lại
29 Ordinal type expected
Yêu cầu kiểu dữ liệu có thứ
tự
Sử dụng kiểu dữ liệu có thứ
tự (kiểu đếm được)
30 Integer constant expected.
Yêu cầu hằng số nguyên
31 Constant expected
Yêu cầu hằng số
32 Integer or real constant
expected.
Yêu cầu hằng số nguyên
hoặc hằng số thực
33 Type identifier expected
Không thấy định nghĩa kiểu
Khai báo kiểu
34 Invalid function result type
Kiểu dữ liệu trả về của hàm
không hợp lệ
Kiểu dữ liệu trả về của
hàm không phải là kiểu
đơn giản, chuẩn
Khai báo lại kiểu dữ liệu trả
về.
35 Label identifier expected
Yêu cầu danh biểu là một
nhãn
Quên khai báo LABEL
trước khi dùng câu lệnh
GOTO
36 Begin expected
Không thấy BEGIN
Thông thường lỗi này là
do lập trình viên gõ sai
các từ khóa trước BEGIN
của chương trình chính
nên trình biên dịch hiểu
nhầm đã bắt đầu câu lệnh
mà không có BEGIN.
Kiểm tra lỗi gõ sai các từ
khóa, các khai báo trước
BEGIN của chương trình
chính.
37 End expected
Không thấy END
Thiếu từ khóa END
tương ứng của BEGIN
hoặc của khai báo
RECORD hoặc của cấu
trúc CASE
38 Integer expression expected
Chờ một biểu thức nguyên
39 Ordinal expression expected
Chờ một biểu thức thứ tự
40 Boolean expression expected
Chờ một biểu thức logic
41 Operand types do not match
operator
Toán hạng không phù hợp
với toán tử
Xem xét lại biểu thức xảy ra
lỗi.
42 Error in expression
Có lỗi trong biểu thức
43 Illegal assignment
Phép gán bất hợp lệ
44 Field identifier expected
Chờ một danh biểu trường
45 Object file too large
File đối tượng quá lớn

