Bài tập  /  Bài đang cần trả lời

Lệnh nào dùng mở để đọc dữ liệu trong biến tệp f?

1 Xem trả lời
Hỏi chi tiết
2.011
0
0
VIEN TRUONG
22/02/2019 10:03:52
Đọc dữ liệu từ tệp văn bản:
            Sau khi tiến hành mở tệp, con trỏ tệp sẽ được đặt tại dòng đầu.Ta dùng thủ tục Read hoặc Readln để đọc dữ liệu từ dòng hiện thời và gán vào biến tương ứng, viết biến đó ra màn hình hoặc máy in.
            Để có thể viết toàn bộ dữ liệu từ một tệp văn bản ra các thiết bị ngoài thì, thì các lệnh đọc viết phải được lặp đi lặp lại từ dòng 1 đến dòng cuối cùng, nghĩa là phải sử dụng một trong 2 vòng lặp:

While not eof(Bientep) do
Begin
             Readln(Bientep, Dong); {biến Dong phải được khai báo trước, kiểu String}
             Write(Dong);
End;
Hoặc:

For i:=1 to filesize(Bientep) do
             Begin
                          Readln(Bientep,Dong);
                          Write(Dong);
             End;

Lưu ý: Muốn lấy lại kiểu của dữ liệu nhập vào tệp văn bản thì mỗi biến phải nhập trên một dòng.
Ví dụ 2.8:
Xây dựng một chương trình đơn giản để quản lý công chức. Dữ liệu nhập bao gồm: Họ tên, Hệ số lương và số con. Dữ liệu xuất ra màn hình bao gồm Họ tên, Hệ số lương, Số con và Lương tháng ( tính theo quy định của nhà nước = heso*540000).
Chương trình đặt ra hai khả năng lựa chọn:
   1. Nếu tệp dữ liệu đã tồn tại thì nhập thêm người
   2. Nếu tệp chưa có thì mở tệp mới
Trong cả 2 trường hợp đều cho biết số người cần nhập. Dữ liệu in ra dưới dạng bảng.

Program Quan_ly_can_bo;
Uses Crt;
Var f:Text; hoten:String[20]; c1, heso:real; c2,i,n,socon:byte;
 Ten:string[12];
Begin
Clrscr;
            Write(‘cho biet ten tep’); readln(ten);
            Assign(f,ten);
            Reset(f);
            If IOResult=0 then
                        Append(f);
            Else     Rewrite(f);
            Write(‘nhap bao nhieu nguoi’); readln(n);
            For i:=1 to n do
                        Begin
                                   Write(‘Hoten’); Readln(hoten);
                                   Write(‘He so’); Readln(heso);
                                   Write(‘So con’); Readln(socon);
                                   Writeln(f,hoten);
                                   Writeln(f,heso:4:2);
                                   Writeln(f,socon);
                        End;
            Close(f);
            Assign(f,ten);
            Reset(f);
            Writeln(‘------------------------------------------------------‘);
            Writeln (‘| Ho va ten | Hs | socon | Luong |’);
            Writeln(‘------------------------------------------------------‘)
            While not eof(f) do
                        Begin
                                   Readln(f,hoten);
                                   Readln(f,heso);
                                   Readln(f,socon);
                                   Writeln(‘|’,ten:19,’|’,heso:4:2,’|’,socon:4,’|’,heso*540000:10:2,’|’);
                        End;
            Readln;
End.

Mở khóa để xem toàn bộ nội dung trả lời

(?)
Bạn đã đạt đến giới hạn của mình. Bằng cách Đăng ký tài khoản, bạn có thể xem toàn bộ nội dung trả lời
Cải thiện điểm số của bạn bằng cách đăng ký tài khoản Lazi.
Xem toàn bộ các câu trả lời, chat trực tiếp 1:1 với đội ngũ Gia sư Lazi bằng cách Đăng nhập tài khoản ngay bây giờ
Tôi đã có tài khoản? Đăng nhập

Bạn hỏi - Lazi trả lời

Bạn muốn biết điều gì?

GỬI CÂU HỎI
Học tập không giới hạn cùng học sinh cả nước và AI, sôi động, tích cực, trải nghiệm

Hôm nay bạn thế nào? Hãy nhấp vào một lựa chọn, nếu may mắn bạn sẽ được tặng 50.000 xu từ Lazi

Vui Buồn Bình thường
×
Trợ lý ảo Trợ lý ảo
×
Đấu trường tri thức | Lazi Quiz Challenge +500k
Gửi câu hỏi
×