Tải bản đầy đủ - 219 (trang)
Chú ý: Thủ tục Seek và các hàm FileSize, FilePos không dùng cho tệp văn bản.

Chú ý: Thủ tục Seek và các hàm FileSize, FilePos không dùng cho tệp văn bản.

Tải bản đầy đủ - 219trang

Trường Đại học Điện lực - Tập đoàn Điện lực Việt Nam



.



.



Ví dụ 7.76: Cho tệp văn bản tên là T2.TXT và có nội dung là:

dong=6

cot =7

0 8 8 -2 6 11 1

8020702

8 2 0 11 12 9 3

-2 0 11 0 -7 9 4

6 7 12 -7 0 6 5

11 0 9 9 6 0 6

Hãy đọc tệp này đưa vào một ma trận A và in ma trận A lên màn hình. Số dòng và số cột của

ma trận A được ghi ở hai dòng đầu tiên trong tệp T2.TXT.

Program VIDU_7_76;

{ vi du ve File Van ban }

uses



crt;



Type



MANG = array[1..20,1..20] of integer ;



Var



A : MANG;

N, M : integer;

F : Text;



Procedure Nhap;

Var



i,j : Byte;

st: string[5];



Begin

Assign(F, 'T2.TXT');

Reset(F);

Readln(F, St, N);

Readln(F, St, M);

For i:=1 to N do

begin

For j:=1 to M do

Read(F, A[i,j]);

Readln(F);

end;

Close(F);

End;

Giáo trình Tin học đại cương



190



Trường Đại học Điện lực - Tập đoàn Điện lực Việt Nam



.



.



Procedure

Var



InMatran;



i, j : Integer;



Begin

For i:=1 to N do

begin

for j:=1 to M do

write( A[i,j]:4);

writeln;

end;

End;

BEGIN

Clrscr;

Nhap;

InMatran;

Readln;

END.

Ví dụ 7.77 : Lập bảng lượng giác từ 10 đến 890 và ghi ra tệp BLGIAC.DAT

Program



Bang_Luong_Giac;



CONST



g='|';



Var



F : Text;

k : Integer;

Rad,S,C,T,CT : Real;



{-------------------------------}

Function



taobansao(Dong:Char; T:Integer):String;



{Chương trình con này tạo đoạn thẳng bởi các dấu bằng =}

Var j : Integer;

Tam :String[80];

Begin

Tam := ' ';

For j := 1 To T



Do



Tam := Tam + Dong;

Replicate := Tam;

End;

{-------------------------------}

Giáo trình Tin học đại cương



191



Trường Đại học Điện lực - Tập đoàn Điện lực Việt Nam



.



.



BEGIN

Assign(f,'BLGIAC.DAT');

Rewrite(f);

Writeln(f,'



* BANG LUONG GIAC *');



Writeln(f);

Writeln(f,taobansao(#61,58));

Writeln(f,g,' DO ',g,' RADIAN ',g,' SIN

g,'



TAN



',g,'



COTANG



',g,'



COSIN



',



',g);



Writeln(f,taobansao(#61,58));{tạo đoạn thẳng}

For k := 1 To 89 Do

Begin

Rad := k * Pi /180;

S := Sin(Rad);

C := Cos(Rad);

T := S/C;

CT := 1/t;

writeln(f,g,k:2,g,Rad:10:8,g,S:10:8,g,C:10:8,g,

T:10:6,g,CT:10:6,g);

End;

Writeln(f,taobansao(#61,58));

Close(f);

END.

{Hãy mở tệp 'BLGIAC.DAT' trong thư mục hiện hành để xem kết quả hoặc để tiện quan sát bạn

có thể thêm phần ghi ra màn hình}



 Tệp không định kiểu

* Tệp không định kiểu:

Tệp không định kiểu - Untyped File - là tệp không định rõ kiểu của phần tử khi khai báo,

coi dữ liệu chính là các mã nhị phân 0,1 không cần biết nó biểu thị cái gì. Đơn vị xử lý là từng

khối bít, có kích thước do ta quy định, gọi là các Record. Lưu ý rằng record ở đây không phải là

kiểu bản ghi như đã biết.

Tệp không định kiểu chủ yếu dùng để tăng tốc độ thao tác vào ra dữ liệu.

* Cú pháp

Khai báo: dùng từ khoá FILE

Var biến tệp : File ;



Giáo trình Tin học đại cương



192



Trường Đại học Điện lực - Tập đoàn Điện lực Việt Nam



.



.



Truy cập: Các thủ tục Reset, Rewrite đối với tệp không định kiểu cần có thêm tham trị

kich thước Rec. Tham trị kích thước Rec là một số nguyên (kiểu Word) để ấn định kích thước

của khối dữ liệu đơn vị (record) trong các thao tác tệp. Kích thước này tính theo byte.

Reset ( biến tệp , kích thước Rec );

Rewrite ( biến tệp , kích thước Rec );

Ví dụ 7.78:

Reset(F,4);



đọc ra từng khối 4 byte một.



Rewrite(F,2);



viết vào từng khối 2 byte một.



Nếu tham số này không có mặt thì record có kích thước mặc định là 128 byte.

* Các hàm, thủ tục khác.

Ngoài ra, để tăng nhanh tốc độ xuất nhập dữ liệu, còn có hai thủ tục dành riêng cho tệp

không định kiểu là BlockRead và BlockWrite.

BlockRead( biến tệp , vùng đệm , số Rec , kết quả );

Vùng đệm: vùng đệm trong bộ nhớ, là một tham biến, nơi chứa dữ liệu đọc vào

Sô Rec : tham trị kiểu Word, là số khối dự định đọc.

Kết quả : tham biến kiểu Word, là số khối thực đọc được.

Tác dụng.

BlockRead đọc một lượng số Rec khối bit từ tệp ứng với biến tệp rồi ghi vào bộ nhớ, bắt

đầu từ byte thứ nhất của Vùng đệm. Số khối bit thực sự đọc được được trả về trong biến kết

qủa. Lưu ý rằng số khối bít thực sự đọc được có thể bé hơn sô Rec dự định đọc nếu đã đến cuối

tệp.

Nếu không có tham biến kết qủa thì khi số khối thực sự đọc được không bằng số Rec sẽ

có lỗi I/O xảy ra.

Số byte đọc được nhiều nhất là số Rec * kích thước Rec, ở đây kích thước Rec là kích

thước của khối. Kích thước khối là số lượng byte trong một khối, được ấn định khi mở tệp như

đã trình bày ở trên.

Nếu số Rec * kích thước Rec > 65,535 (64K) thì sẽ có lỗi.

BlockWrite( biến tệp , vùng đệm , số Rec , kết quả );

Vùng đệm: vùng đệm trong bộ nhớ, là một tham biến, nơi chứa dữ liệu để xuất ra.

Sô Rec : tham trị kiểu Word, là số khối dự định xuất ra.

Kết quả : tham biến kiểu Word, là số khối thực sự xuất ra được.



Ý nghĩa của các tham số và công dụng của BlockWrite cũng tương tự như BlockRead ở trên.

Chỉ có thao tác truy cập ở đây là viết từ bộ nhớ ra tệp.

193

Giáo trình Tin học đại cương



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Chú ý: Thủ tục Seek và các hàm FileSize, FilePos không dùng cho tệp văn bản.

Tải bản đầy đủ ngay(219 tr)

×
x