– XỬ LÝ TẬP TIN - XEM LẠI ĐOẠN CHƯƠNG TRÌNH MẪU, HÃY ĐƯA RA GIẢ...

Bài 5 – Xử lý tập tin

-

Xem lại

đoạn chương trình mẫu, hãy đưa ra giải thuật

đọc nội dung của tập tin

và hiển thị nội dung đó ra màn hình.

-

Hãy thử thay đổi thuộc tính tập tin trong lệnh mov al, 2 lần lượt thành các giá

trị khác như 0, 1, 3 hoặc 4. Biện dịch và cho chạy chương trình để xem kết quả.

Có nhận xét gì về các giá trị này ?.

-

Thẻ file có vai trò như thế nào trong xử lý tập tin.

-

Nếu số byte cần đọc (giá trị chứa trong thanh ghi cx) lớn hơn kích thước thật sự

của tập tin thì có gây ra lỗi gì hay không ?. Sau khi đọc nội dung của tập tin vào

vùng

đệm bằng hàm 3fh của INT 21h, thanh ghi ax sẽ có giá trị thay đổi hay

không và nó chứa (giá trị) gì ?. Làm sao xác định

được khi nào đọc xong nội

dung thành tập tin ?. Hãy thử đưa ra hướng giải quyết.

-

Hãy sửa

đổi file BAI_5C.ASM và lưu với tên BAI_5C1.ASM để có thể thực

hiện được yêu cầu sau: đọc nội dung của một tập tin và hiển thị nội dung đó lên

màn hình. Tên tập tin được nhập từ bàn phím. Gợi ý: sử dụng lại giải thuật nhập

tên file từ bàn phím và đưa zero về cuối chuỗi và các bài có liên quan trong bài

6.

-

Hãy sửa đổi file BAI_5C1.ASM và lưu với tên BAI_5C2.ASM để có thể thực

hiện được yêu cầu sau: copy nội dung của một tập tin bất kỳ sau đó paste sang

một vị trí khác. Gợi ý: các giải thuật nhập tên file từ bàn phím thì có sẵn, giải

thuật copy và paste như sau: trước hết phải mở tập tin đã có bằng hàm 3dh,

chúng ta định nghĩa sẵn đường dẫn chứa tên file cần mở, đọc nội dung của tập

tin vào vùng đệm bằng hàm 3fh, nhớ cất thẻ file; tạo tên tập tin mới bằng hàm

3ch, chúng ta định nghĩa sẵn đường dẫn chứa tên file cần tạo, nhớ cất thẻ file;

ghi nội dung của vùng đệm vào tập tin mới vừa tạo bằng hàm 40h; đóng hai tập

tin lại bằng hàm 3eh, tất cả các hàm này đều của int 21h.

-

Hãy sửa đổi file BAI_5C2.ASM và lưu với tên BAI_5C3.ASM để có thể thực

một vị trí khác. Tên tập tin được copy và tập tin sau khi paste đều nhập từ bàn

phím. Gợi ý: hoàn toàn tương tự như BAI_5C2.ASM, nhưng chúng ta cần tận

dụng lại giải thuật nhập tên file từ bàn phím từ BAI_5B3.ASM.

-

Hãy sửa đổi file BAI_5C3.ASM và lưu với tên BAI_5C4.ASM để có thể thực

hiện được yêu cầu sau: save as nội dung của một tập tin. Tên tập tin được copy

và save as đều nhập từ bàn phím. Gợi ý: bài này giống tương tự như

BAI_5C3.ASM.

hiện được yêu cầu sau: đọc nội dung của tập tin và sau đó nhập một chuỗi ký tự

bất kỳ và ghi tiếp theo sau nội dung của tập tin vừa mở. Tên tập tin nhập từ bàn

phím. Gợi ý: xem lại BAI_5C1.ASM, BAI_5B1.ASM, BAI_5B2.ASM và hàm

42h của int 21h (dời vị trí con trỏ tập tin).

-

Hãy sửa đổi file BAI_5C4.ASM và lưu với tên BAI_5C5.ASM để có thể thực

hiện

được yêu cầu sau: mã hóa nội dung của tập tin. Tên tập tin cần mà hóa

được nhập từ bàn phím. Gợi ý: nhập vào tên file cần mã hóa, mở một file đã có

bằng hàm 3dh; đọc nội dung của tập tin vào vùng đệm bằng hàm 3fh; mã hóa

vùng đệm đọc được bằng một trong các phép toán cộng, trừ, nhân, chia, and, or,

not …, vừa mã hóa vừa lưu nội dung trở lại vùng đệm; dời vị trí con trỏ tập tin