Tệp dữ liệu với dữ liệu được hiểu theo nghĩa rộng : đó có thể là chương trình, có thể là số liệu, có thể là các dữ liệu khác như kí tự, văn bản…
Tệp còn có tệp có định kiểu, tệp văn bản và tệp không định kiểu (sẽ học kĩ ở cuối chương) .
Để dễ hình dung ra tệp, chúng ta hãy xem tổ chức tủ phiếu của thư viện. Các dữ liệu cho một cuốn sách là tên sách, tên tác giả, giá tiền, số trang, nhà xuất bản… Các dữ liệu này được nhóm lại với nhau để tạo thành các tờ phiếu, mỗi tờ phiếu đóng vai trò là một phần tử của tệp dưới dạng một Record (bản ghi) . Đây cũng là lý do gắn liền khái niệm cấu trúc dữ liệu Record với cấu trúc File. Các phần tử của tệp (các Record) có cùng một kiểu dữ liệu (Ví dụ các phiếu thư viện đều giống nhau ở chỗ mỗi cái đều có tên sách, tên tác giả, nhà xuất bản…) . Các phiếu này được xếp lại thành một tệp (phiếu) và được để vào một ô ngăn kéo nào đó với một cái tên (tên tệp) . Ví dụ ngăn chữ A (tên tệp là A) là tệp các cuốn sách có tên bắt đầu bằng chữ A. Các ngăn kéo lại được chứa trong một cái tủ. Trong máy tính, một đĩa cứng hoặc một một đĩa mềm đóng vai trò là chiếc tủ.
File còn được gọi là hồ sơ, là tập tin.
Tệp thường được chứa trong một bộ nhớ ngoài như đĩa cứng, đĩa mềm, băng từ. Điều đó cũng có nghĩa là tệp được lưu trữ để dùng nhiều lần và tồn tại ngay cả khi chương trình kết thúc hoặc mất điện. Khác với các cấu trúc dữ liệu khác mà chúng ta đã học như : mảng, tập hợp, bản ghi, là các cấu trúc dữ liệu được tổ chức trên bộ nhớ trong (RAM) của máy tính nên một khi kết thúc chạy chương trình hoặc mất điện thì các dữ liệu này cũng mất luôn. Vì vậy những dữ liệu nào cần lưu trữ (như hồ sơ cán bộ, vật tư hàng hóa của kho, tín hiệu điện…) thì ta bắt buộc phải dùng đến tệp. Bên cạnh đó một số thiết bị ngoại vi như bàn phím, màn hình, máy in được coi như là một tệp (xem phần tệp văn bản ở sau) . Tệp cũng còn có thể tổ chức trong bộ nhớ trong của máy song đó là những tệp tạm thời, trung gian vì chúng không lưu trữ lại được khi dừng chương trình hoặc mất điện.
Tệp là một kiểu dữ liệu có cấu trúc. Định nghĩa của tệp có phần nào giống mảng ở chỗ chúng đều là tập hợp của các phần tử dữ liệu có cùng kiểu. Song mảng được định nghĩa và khai báo trong chương trình với số phần tử đã xác định còn số phần tử của tệp không được xác định khi định nghĩa.
Định nghĩa một kiểu tệp T với các phần tử có kiểu là KPT (Kiểu phần tử) được viết trong phần mô tả kiểu với từ khóa FILE OF như sau :
Type
T = File Of KPT ;
Sau đó khai báo một biến tệp (FileVar) trong phần khai báo biến :
Var
Biến_tệp : Kiểu_tệp ;
hoặc khai báo trực tiếp một biến tệp với mô tả kiểu :
Var
Biến_tệp : File Of Kiểu_phần_tử ;
Ví dụ:
Type
FileInteger = File Of Integer ;
FileReal = File Of Real ;
FileBoolean = File Of Boolean ;
NhanSu = Record
Ten : String[ 30 ] ;
Tuoi : Byte ;
Luong : Real ;
End ;
FileNhanSu = File Of NhanSu ;
Var (* khai báo các biến tệp *)
F1, F2 : FileInteger ;(* F1, F2 là hai biến tệp có các phần tử là số nguyên *)
F3 : FileReal ; (* F3 là tệp các số thực *)
FNS : FileNhanSu ; (* FNS là tệp các bản ghi nhân sự *)
F5 : File Of Char ;
F6 : File Of
Array[ 1.. 5 ] Of Integer ;
F6 là biến tệp được khai báo trực tiếp trong phần Var với các phần tử là mảng một chiều, độ dài mảng là 5.
FileInteger là kiểu tệp có các phần tử là số nguyên.
FileReal là kiểu tệp có các phần tử là số thực.
Kiểu của phần tử của tệp có thể là bất kỳ kiểu dữ liệu nào (kiểu vô hướng, kiểu có cấu trúc như mảng, tập, bản ghi) , trừ kiểu tệp nghĩa là không có kiểu tệp của tệp.