• Thứ Năm, 12/06/2008 17:50 (GMT+7)

    Xử lý file

    Câu hỏi :
    Một vấn đề nữa, muốn xoá một vùng dữ liệu trong file thì phải dịch đoạn văn bản sau lên phía trước rồi cho ký tự kết thúc vào, nhưng ký tự kết thúc file cũ vẫn còn ở phía sau, nó có ảnh hưởng gì đến file đó không? Xin hỏi ký hiệu kết thúc file?
     

    Trả lời :

    Ý tưởng của người lập trình viên (bạn của bạn) nêu trên là đúng về qui trình thực hiện chi tiết việc chèn/xóa 1 đoạn văn bản trong 1 vùng nhớ chứa văn bản. Tuy nhiên khi thực hiện trên file văn bản, ít khi người ta hiệu chỉnh trực tiếp nội dung file văn bản gốc vì như vậy rất không an toàn. Thường qui trình chi tiết để chèn/xóa chuỗi con trong 1 file văn bản là tiến hành cẩn thận các bước sau:

     1. Mở file văn bản gốc để đọc nội dung;
     2. Tạo file văn bản mới để chứa kết quả, file mới tạo lúc đầu rỗng chưa có ký tự nào;
     3. Đọc chuỗi văn bản nằm trước chuỗi cần xóa/chèn từ file gốc vào bộ nhớ, rồi ghi nó lên file kết quả;
     4. Tùy hoạt động chèn/xóa mà thực hiện 1 trong 2 công việc sau:
     4.1 Ghi chèn thêm chuỗi cần chèn lên file kết quả,
     4.2 Đọc xóa bớt chuỗi cần xóa từ file gốc (và bỏ nó).
     5. Đọc chuỗi văn bản còn lại trên file gốc và ghi nó lên file kết quả.
     6. Xóa file gốc và "rename" file kết quả thành file gốc.
     Nếu bộ nhớ chương trình đủ lớn (các ứng dụng trên Windows đều có tính chất này), bạn có thể đọc hết toàn bộ file gốc vào 1 biến chuỗi của chương trình, sau đó chèn/xóa thông tin trên biến chuỗi, cuối cùng ghi kết quả lên file kết quả.
     Tùy theo việc dùng các hàm truy xuất file ở cấp độ nào và của thư viện nào mà xác định có cần xử lý ký tự kết thúc file văn bản hay không. Thường các thư viện chọn ký tự Ctrl-Z để đánh dấu kết thúc file văn bản, nhưng không bắt buộc phải có.
     

    Chuyên mục: Lập trình