• Thứ Sáu, 17/03/2006 14:07 (GMT+7)

    Lập trình VB và đọc ghi dữ liệu

    Câu hỏi :
    Chương trình “từ điển” gồm: 1 form, 2 textBox (txttu và txtnghia) dùng để ghi từ tiếng Anh và nghĩa tiếng Việt, 1 ListBox dùng để lưu trữ các từ đã thêm, 3 commandButton (cmdThem, cmdSua, cmdXoa) dùng thực hiện việc cập nhật tập tin “nghia.txt”.

    1. Khi nhập vào txttu và txtnghia rồi nhấn nút thêm, dữ liệu được thêm vào listBox, nhưng khi nhấn nút xóa thì chỉ xóa được trong lúc thực thi, khi tắt chương trình rồi vào lại thì dữ liệu vẫn còn, cụ thể mã nguồn như sau:

    Private Sub cmdXoa_click()
           List1.RemoveItem List1.ListIndex
    End Sub

    2. Vấn đề tương tự với nút sửa.


    Trả lời :

    1. Để viết phần mềm giải quyết vấn đề nào đó, trước hết bạn phải phân tích các yêu cầu cụ thể của phần mềm, từ đó mới thiết kế được các thành phần cấu thành phần mềm (thí dụ các dữ liệu và các module chức năng). Bạn nên lưu ý 1 điều rất đơn giản nhưng có nhiều bạn lại không để ý tới: bất kỳ hành vi nào của phần mềm đều phải được viết tường minh vì máy không thể tự thực hiện giúp mình bao giờ. Cụ thể đối với chương trình quản lý từ điển của bạn, bạn có dùng 2 đối tượng dữ liệu khác nhau để lưu trữ tự điển: 1 file chứa từ điển trên đĩa và 1 listbox để hiển thị từ điển trong bộ nhớ. Đoạn code của hàm cmdXoa_click() mà bạn trình bày chỉ xóa được phần tử cần xóa trong Listbox, chứ không động chạm gì trên file, do đó khi chương trình dừng rồi chạy lại, nếu bạn đọc dữ liệu từ file rồi “add” vào ListBox để hiển thị cho người dùng xem thì tất cả các từ trong file gốc sẽ hiển thị lên cho người dùng xem (vì rõ ràng bạn chưa xóa từ cần xóa trong file gốc). Để cập nhật file từ điển dễ dàng và hiệu quả, bạn nên viết thêm đoạn code lưu giữ nội dung ListBox lên file mỗi khi chương trình dừng chạy.

    2. Tương tự, để xử lý chức năng “hiệu chỉnh từ”, bạn cần phải tìm phần tử đã tồn tại trong ListBox và file “nghia.txt” để xóa đi trước khi “add” lại phần tử miêu tả nội dung mới của từ đó.

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