Lỗi xóa khoảng trắng

tuhocvba

Administrator
Thành viên BQT
Hôm nay tôi chia sẻ với các bạn về kinh nghiệm xử lý lỗi. Hiện tại tôi đang làm tool tạo để trắc nghiệm và đảo câu hỏi (&đáp án).
Trong xử lý chuỗi ký tự, chúng ta cần phải xóa bỏ các chuỗi ký tự vô nghĩa trước khi tiến hành vào việc chính.

Chẳng hạn với code C ta cần xóa bỏ các ký tự sau // , vì đây là nội dung comment không có ý nghĩa.
Tương tự nếu đọc code VBA, ta cần xóa bỏ các ký tự sau dấu ', vì đây là nội dung comment không có ý nghĩa.
Và chúng ta cũng cần xóa khoảng trắng trước và sau ký tự " a " bằng lệnh Trim.

Trước hết về bối cảnh câu chuyện: Thư viện đề có tới 2000 câu hỏi, lấy ngẫu nhiên, trong quá trình lấy ngẫu nhiên.
Dấu hiệu 1: Chương trình tạo ra output lỗi. Tuy nhiên không biết chính xác là lỗi ở câu nào.
=> Thu hẹp phạm vi để dò lỗi.
Mặc dù bị lỗi, nhưng đây là quá trình đọc đáp án. Output thì nó vẫn ra file đề thi (file tex).
File này thì chỉ có vài chục câu.

=> Tôi tiến hành convert vài chục câu này ra Excel để đọc và tiến hành xử lý trên Excel xem ở vị trí câu nào thì bị lỗi.
=> Như vậy lần thu hẹp phạm vi dò lỗi này khả quan hơn. Từ vài chục câu tôi rút ngắn xuống còn 1 câu.

Tại câu này, sau một hồi dò lỗi, tôi thấy có một ký tự rất lạ. Nó hiển thị như này:
Bạn cần đăng nhập để thấy đính kèm

Thông qua hàm asc tôi lấy ra được nó là 9. Tra mã Ascii thì nó là dấu tab.
Như vậy khi code , tôi đã phán đoán được tình lỗi là có khoảng trắng, đã sử dụng lệnh Trim để cắt như các bạn thấy ở trên, nhưng nó vẫn vô tác dụng. Từ đó xảy ra các lỗi không mong muốn sau này. Đây cũng là kinh nghiệm cho tôi và các bạn, cần phải triệt để hơn khi xử lý các khoảng trắng.
Lệnh Trim chỉ hữu hiệu xóa dấu cách. Ở đây để xóa dấu Tab ở đầu, thì chúng ta chỉ cần dùng vòng lặp:
Trong khi mà ký tự ở đầu chuỗi là Tab thì
Mã:
s = right(s,len(s)-1)
.

Một bài viết vội, khá ngắn, nhưng để đi tới bài viết này, tôi cũng đã mất vài tiếng xử lý lỗi. Vậy chia sẻ cùng các bạn.
 
Top