1. Trang chủ
  2. » Công Nghệ Thông Tin

Các lỗi thường gặp trong Turbo Pascal pdf

15 1,8K 8

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 455,29 KB

Nội dung

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

Trang 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

Trang 2

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

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

Trang 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

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

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

Trang 4

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

file

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ở

Trang 5

28 Lower bound greater than upper

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

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

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

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

Trang 6

6

46 Undefined external Chưa định nghĩa External

Sử dụng/gọi một thủ tục biên dịch sẳn dạng thức BIN nhưng chưa khai báo thủ tục này là EXTERNAL

Khai báo thủ tục hoặc hàm EXTERNAL

47 Invalid object-file record Bản ghi của đối tượng file

không đúng

48 Code segment too large Đoạn mã chương trình quá

lớn

49 Data segment too large Đoạn mã dữ liệu quá lớn

Viết thiếu từ khóa DO sau câu lệnh FOR hoặc WHILE

51 Invalid public definition Định nghĩa public không

đúng

52 Invalid Extern definition Định nghĩa External không

đúng

53 Too many Extern definitions Quá nhiều định nghĩa

External

trong câu lệnh CASE

55 Interface expected Chờ INTERFACE

Viết thiếu từ khóa INTERFACE trong cấu trúc của UNIT

56 Invalid relocatable reference Liên hệ tái định vị không

đúng

trong câu lệnh IF

58 To or Downto expected Chờ TO hoặc DOWNTO

Viết thiếu từ khóa TO/DOWNTO trong câu lệnh FOR

59 Undefined forward Chưa định nghĩa

FORWARD

Các thủ tục gọi lẫn nhau nhưng quên khai báo FORWARD Thường xảy ra trong trường hợp

đệ qui hỗ tương

Phải khai báo FORWARD cho tất cả thủ tục, hàm có gọi lẫn nhau

60 Too many procedures Quá nhiều PROCEDURE

Trang 7

61 Invalid typecast Ép kiểu không đúng

62 Division by zero Chia cho số 0

1 Thực hiện một phép chia cho 0 trong biểu thức

2 Unit CRT bị lỗi do tốc

độ bộ xử lí lớn hơn

300 MHz (Từ các đời máy 80846 trở đi)

1 Xem lại biểu thức

2 Cập nhật file TURBO.TPL (Trong hướng dẫn sửa lỗi khi cài đặt TURBO PASSCAL)

63 Invalid file type Kiểu file không đúng

64 Cannot read or write variables

of this type

Không thể đọc hoặc ghi biến thuộc kiểu dữ liệu này

Thông thường là do muốn đọc hoặc ghi trực tiếp dữ liệu kiểu Boolean

Đọc/Ghi gián tiếp cho kiểu

dữ liệu này

65 Pointer variable expected Chờ biến kiểu con trỏ

66 String variable expected Chờ biến kiểu chuỗi

67 String expression expected Chờ biểu thức chuỗi

68 Circular unit reference Liên hệ Unit lòng vòng Các Unit gọi lẫn nhau

69 Unit name mismatch Tên Unit không khớp

70 Unit version mismatch Phiên bản Unit không khớp

71 Duplicate unit name Trùng lặp tên Unit

72 Unit file format error Lỗi trong dạng thức file Unit

73 Implementation expected Chờ IMPLEMENTATION

Viết thiếu từ khóa IMPLEMENTATION trong cấu trúc của UNIT

74 Constant and case types do not

match

Hằng và kiểu giá trị hằng không khớp

75 Record variable expected Chờ đợi biến kiểu bản ghi

76 Constant out of range Hằng vượt quá phạm vi

77 File variable expected Chờ biến kiểu File

78 Pointer expression expected Chờ biểu thức kiểu con trỏ

79 Integer or real expression

expected

Chờ biểu thức nguyên hoặc thực

80 Label not within current block Nhãn không thuộc về block

hiện tại

Xem lại vị trí định nghĩa nhãn hoặc xem lại tầm vực của nhãn

81 Label already defined Nhãn này đã được định nghĩa

rồi

Trang 8

8

82 Undefined label in preceding

statement part

Nhãn chưa được định nghĩa trong phần phát biểu trước

83 Invalid @ argument Sử dụng sai đối số @

Đây là những lỗi khá phổ biến Thông thường là do

gõ sai hoặc gõ sót các token “;”,…

Thêm “;”

96 Too many variables Quá nhiều biến

Giảm bớt số biến đã khai báo Thông thường nên tăng cường sử dụng biến cục bộ thay cho biến toàn cục

97 Invalid For control variable Biến điều khiển vòng lặp

FOR không thích hợp

Đã dùng biến điều khiển vòng lặp thuộc kiểu không có thứ tự

Thay đổi kiểu của biến điều khiển vòng lặp FOR

98 Integer variable expected Chờ một biến kiểu số nguyên

99 Files are not allowed here Không cho phép dùng File ở đây

100 String length mismatch Chiều dài của chuỗi không

khớp

101 Invalid ordering of fields Thứ tự các field không đúng

102 String constant expected Chờ đợi một hằng chuỗi

103 Integer or real variable expected Chờ đợi biến nguyên hoặc

thực

104 Ordinal variable expected Chờ đợi biến thứ tự

Chèn mã assembly trực tiếp vào chương trình nguồn gây ra lỗi

Xem lại các đoạn mã assembly Đảm bảo đúng cú pháp của Microsoft

Assembly

106 Character expression expected Chờ đợi biểu thức kí tự

Trang 9

107 Too many relocation items Quá nhiều mục tái định vị

108

109

110

111

112 Case constant out of range Hằng trị trong câu lệnh

CASE vượt quá phạm vi

113 Error in statement Sai lầm trong câu lệnh

114 Cannot call an interrupt

115

116 Must be in 8087 mode to

compile this

Cần bộ xử lí dấu chấm động

8087 để biên dịch phần này

- Lỗi này không xảy ra nữa

kể từ thế hệ máy 80386 DX

- Trong menu [Options > Compiler] đánh dấu kiểm vào ô 8087/80287

117 Target address not found Không tìm thấy địa chỉ mục

tiêu

118 Include files are not allowed

here

Không được phép INCLUDE file ở vị trí này

119

120 Nil expected Chờ đợi con trỏ NIL

121 Invalid qualifier Danh biểu không đúng

122 Invalid variable reference Liên hệ biến không đúng

123 Too many symbols Có quá nhiều kí hiệu

124 Statement part too long Câu lệnh quá dài

125

126 Files must be Var parameters Phải sử dụng tham biến cho

kiểu dữ liệu File

Đã khai báo biến kiểu file như là một tham trị trong header

Phải khai báo tham biến cho mọi tham số kiểu File trong header của Procedure hoặc Function

127 Too many conditional symbols Quá nhiều kí hiệu điều kiện

128 Misplaced conditional directive Đặt dẫn hướng điều kiện

không đúng chỗ

129 ENDIF directive missing Sai lầm ở dẫn hướng ENDIF

130 Error in initial conditional Sai lầm ở khởi tạo định nghĩa

điều kiện

Trang 10

10

131 Header does not match previous

definition

HEADER không khớp với định nghĩa trước đó

Khai báo các header trong phần INTERFACE và trong IMPLEMENTATION của Unit phải khớp nhau

132 Critical disk error Đĩa có lỗi nghiêm trọng

Đây là lỗi khá khó chịu!

Có thể đĩa bị hỏng, bị lỗi CRC, quên bẻ chốt khóa (đối với ổ đĩa mềm),…

Xem xét lại ổ đĩa và đĩa

133 Cannot evaluate this expression Không lượng giá biểu thức

này được

Xem xét lại cú pháp của biểu thức

134 Expression incorrectly

Thông thường là do thiếu toán hạng, thiếu dấu “)”

135 Invalid format specifier Sai ở bộ xác định dạng thức

136 Invalid indirect reference Liên hệ gián tiếp sai

137 Structured variables are not

allowed here

Không cho phép biến có cấu

138 Cannot evaluate without

SYSTEM unit

Không thể lượng giá mà không có unit SYSTEM

Thông thường Unit SYSTEM được tải lên mặc định khi gọi Pascal

mà không cần khai báo qua câu lệnh USES Có thể là do Unit SYSTEM

đã bị gỡ bỏ khỏi TURBO.TPL Dùng TPUMOVER.EXE để xem lại các Unit còn đang được tích hợp trong TURBO.TPL

- Tích hợp SYSTEM.TPU vào TURBO.TPL trở lại

- Khai báo USES SYSTEM;

139 Cannot access this symbol Không thể truy cập kí hiệu

này

Có thể phải khai báo dẫn hướng biên dịch {$ F+} -Force far call - để truy cập/ gọi được kí hiệu này

140 Invalid floating-point operation Tác vụ xử lí dấu chấm động

sai

141 Cannot compile overlays to

memory

Không thể biên dịch Overlay vào bộ nhớ

Ngày đăng: 22/03/2014, 12:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w