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


Mở tệp mới để ghi dữ liệu



tải về 1.67 Mb.
trang40/48
Chuyển đổi dữ liệu18.07.2016
Kích1.67 Mb.
#1821
1   ...   36   37   38   39   40   41   42   43   ...   48

7.5.5. Mở tệp mới để ghi dữ liệu


Chương trình chỉ có thể ghi dữ liệu vào tệp sau khi ta đã làm thủ tục mở tệp. Việc mở tệp được tiến hành nhờ hai thủ tục sau:

ASSIGN( biếntệp, têntệp);

REWRITE( biếntệp);

Ví dụ 7.60: Gán tên tệp cho biến tệp, ở đây tên tệp là một biểu thức kiểu chuỗi tên thực sự của tệp.

Assign(F1,‘DLIEU.DAT’);

khởi tạo tệp DLIEU.DAT nhờ thủ tục

Rewrite(F1) ;

Assign(F3,‘QLSV.DAT’);

Rewrite(F3); {khởi tạo tệp QLSV.DAT}


Sau hai lệnh này máy khởi tạo tệp mới, nếu tệp đã có trên đĩa thì nó xóa đi và tạo mới, biến F1 đồng nhất với tệp DLIEU.DAT, mọi thao tác trên biến F1 chính là thao tác trên tệp DLIEU.DAT. Tương tự, biến F3 đồng nhất với tệp QLSV.DAT

Sau khi mở tệp xong, tệp sẽ rỗng vì chưa có phần tử nào, cửa sổ của tệp sẽ không có giá trị xác định vì nó trỏ vào cuối tệp.

*Chú ý:

- Nếu muốn tạo ra tệp trong một thư mục khác thì tên tệp phải bao gồm cả đường dẫn.

- Nếu trên đĩa đã có sẵn một tệp trùng tên thì nội dung của tệp này sẽ bị xoá. Tệp trở thành rỗng.

* Ghi dữ liệu vào tệp với thủ tục WRITE

Thủ tục WRITE sẽ ghi các giá trị mới vào tệp

WRITE( biếntệp, b1, b2, ..., bN);

Tuần tự ghi vào tệp các giá trị của các biến b1, b2, ..., bN. Các biến b1, ..., bN phải cùng kiểu dữ liệu với các phần tử của tệp.


Ví dụ 7.61:

- Cho i, j, k là các biến kiểu Integer và i=10, j=20, k=100, khi đó lệnh :

Write(F1,i,j,k);

sẽ ghi lần lượt các giá trị 10, 20, 100 vào tệp DLIEU.DAT

- Cho khai báo:

Var X : Ksvien;

Các lệnh sau gán giá trị cho X và ghi X vào tệp QLSV.DAT:

X.Ten:=’Nguyen Thanh Lam’;

X.Namsinh :=2002;

X.DTB :=6.5;

Write(F3, X);

Sau khi ghi X vào tệp QLSV.DAT, con trỏ tệp tự động dời đến vị trí của phần tử tiếp theo.



* Đóng tệp

Bước cuối cùng của việc ghi dữ liệu vào tệp là đóng tệp lại bằng thủ tục CLOSE để đảm bảo thông tin trên tệp là đầy đủ và tin cậy.



CLOSE( biếntệp);

Ví dụ 7.62: Chương trình sau ghi 10 số nguyên từ 1 đến 10 vào tệp SoNguyen.DAT
Program Ghi_Tep;

Var I : Integer;

f : File Of Integer;

Begin


Writeln('THU TUC WRITE, GHI DU LIEU VAO TEP TREN DIA');

Writeln('-------------------------------------------');

Writeln;

Assign(f,'SoNguyen.DAT');

Rewrite(f);

For i := 1 To 10 Do

Write(f,i);

Writeln;


Writeln('Da ghi vao tep SONGUYEN');

Writeln(' Bam ...');

Readln;

Close(f);



End.

7.5.6. Mở tệp đã tồn tại để đọc dữ liệu


Đối với các tệp tuần tự, ta không thể vừa ghi vừa đọc được cùng một lúc. Sau khi ghi dữ liệu vào tệp và đóng lại, ta có thể đọc lại các giá trị đã ghi trong tệp.

Một chương trình muốn sử dụng các dữ liệu đã chứa trong một tệp, đầu tiên phải mở nó ra để đọc.

Ta có hai thủ tục sau:

ASSIGN( biếntệp, têntệp);

RESET( biếntệp);

Sau lệnh RESET con trỏ tệp trỏ vào phần tử đầu tiên (có số thứ tự là 0) của tệp.



Ví dụ 7.63: Assign(F3, ‘QLSV.DAT’);

Reset ( F3); mở tệp QLSV.DAT



*đọc dữ liệu từ một tệp đã có

Để đọc dữ liệu từ tệp ta dùng thủ tục READ có cú pháp như sau:

READ( biếntệp, b1, b2, ..., bN);

Đọc tuần tự các phần tử của tệp từ vị trí hiện thời của con trỏ tệp và gán cho các biến b1, b2, ..., bN. Kiểu dữ liệu của các biến b1, b2, ..., bN phải cùng kiểu với các phần tử của tệp. Mỗi khi đọc xong một phần tử, con trỏ tệp tự động dời đến phần tử tiếp theo.



Ví dụ 7.64:

Lệnh Read(F1, i, j); đọc hai số nguyên trong tệp DLIEU.DAT (kể từ vị trí hiện thời) và gán cho các biến nguyên i, j .

Lệnh Read(F3, X); đọc bản ghi hiện thời của tệp QLSV.DAT và gán cho biến bản ghi X.

Chương trình sau sẽ đọc các phần tử của một tệp có tên được nhập từ bàn phím (kiểm tra sự tồn tại của tệp).


Program Doc_Tep;

Label tt;

Var

I,k : Integer;



Ten : String;

f : File Of Integer;

Begin

Writeln('THU TUC READ, DOC DU LIEU TU TEP TREN DIA');



Writeln('------------------------------------------');

tt:Writeln;

k := 0;

Write('-Cho biet ten tap tin: ');



Readln(Ten);

Assign(f,Ten);

{$I-}

Reset(f);



If IOResult <> 0 Then

{ham IOResult =0 tuc tep f co ton tai}

Begin


Writeln;

Writeln(' Khong co tep nay');

Write(' Bam de tim lai: ');

Readln;


Goto tt;

End;


While Not EOF(f) Do

Begin


Read(f,i);

Writeln(i);

k := k+1;

End;


Writeln;

Writeln('Tep: ',ten,' co: ',k:3,' phan tu');

Write(' Bam ...');

Readln;


Close(f);

End.
Ví dụ 7.65:

Nhập một danh sách sinh viên gồm Họ tên, điểm Toán, điểm Lý, tính điểm trung bình rồi lưu vào tệp HOSO.DAT. Sau đó đọc dữ liệu tệp này và in ra màn hình.

PROGRAM VIDU_7_65;

Uses CRT;

Const Tenttin = ‘HOSO.DAT’;

Type Ksvien= Record

Hoten: String[20];

Toan, Ly, Dtb : Real;

end;


KieuTtin = File of Ksvien ;

Var F : KieuTtin ;

X : Ksvien ;

i: Integer;

BEGIN

Clrscr;


Assign(F, TenTtin);

Rewrite(F);

i:=0;

Repeat


Clrscr;

Gotoxy(10,4);

Write(‘NHAP SV THU ‘,i,‘:(Enter đe ket thuc)‘);

With X do

begin

Gotoxy(10,6); Write(‘Ho va ten:’);



Gotoxy(10,8); Write(‘Diem Toan:’);

Gotoxy(10,10); Write(‘Diem Ly :’);

Gotoxy(20,6); Readln(Hoten);

If Hoten<>’’ then

begin

Gotoxy(20,8); Readln(Toan);



Gotoxy(20,10); Readln(Ly);

DTB:=(Toan+Ly)/2;

end;

end;


If X.Hoten<>’’ then

Write(F,X);

i:=i+1;

Until X.Hoten=’’;



Close(F);

Writeln(#32:5,‘Ho va ten’,#32:6,‘TOAN~~~LY~~~~DTB’);

Reset(F);

While Not Eof(F) do

begin

Read(F, X);



Writeln(X.Hoten, #32:20-Length(X.Hoten),

X.Toan:4:1,#32:3, X.Ly:4:1, #32:3, X.DTb:4:1);

end;

Close(F);



Readln;

END.


*Chú ý: Nếu tham số trong chương trình con là tệp thì nó phải là tham số biến, không thể là tham số trị.

Каталог: images
images -> Hướng dẫn sử dụng Dropbox Để sử dụng được Dropbox
images -> BÀi thuyết trình cách xáC ĐỊnh và chế ĐỘ pháp lý CỦa các vùng biển theo công ưỚc của liên hiệp quốc về luật biển năM 19821
images -> Céng hßa x· héi chñ nghÜa viÖt nam Độc lập tự do hạnh phúc
images -> Lúa gạo Việt Nam Giới thiệu
images -> Trung Tâm kt tc-đl-cl
images -> Số: 105/2008/QĐ-ttg CỘng hòa xã HỘi chủ nghĩa việt nam độc lập Tự do Hạnh phúc
images -> ChuyêN ĐỀ ĐẠi số TỔ HỢP, XÁc suất kiến thức cơ bản Đại số tổ hợp
images -> BỘ giáo dục và ĐÀo tạo trưỜng đẠi học luật tp. HỒ chí minh dưƠng kim thế nguyên thủ TỤc phá SẢn các tổ chức tín dụng theo pháp luật việt nam
images -> Review of Condor, Sun Grid Engine and pbs

tải về 1.67 Mb.

Chia sẻ với bạn bè của bạn:
1   ...   36   37   38   39   40   41   42   43   ...   48




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương