Hỏi về khai báo độ dài của biến

Liên hệ QC

PhanTuHuong

VBA & VB.NET for Excel & AutoCad
Thành viên danh dự
Tham gia
13/6/06
Bài viết
7,121
Được thích
24,279
Thông thường, tôi thấy có thể khai báo biến như sau:


Nhưng có người khai báo:



Theo tôi hiểu, kiểu thứ 2 ấn định độ dài của Ten là 20 ký tự. Nghĩa là nếu chưa đủ thì VB sẽ tự bổ sung các ký tự trống, còn thừa thì sẽ tự động cắt bỏ.

Như vậy, khi nào mới thật sự cần khai báo theo kiểu thứ 2???

Nhờ các cao thủ chỉ giúp nhé.
 
Theo em đây là vấn đề cấp phát bộ nhớ cho biến tức là chương trình sẽ dành ra bao nhiêu dung lượng để lưu trữ biến này, còn độ dài của biến thì ....(!????)
..............
 
Lần chỉnh sửa cuối:
Dear all,
-------
Đúng là cách đặt vấn đề thì có vẻ chưa được rõ ràng, song chúng ta hiểu với nhau là được. Câu hỏi là:
"khi nào mới thật sự cần khai báo theo kiểu thứ 2???"
Thực ra đây là một câu đố bởi vì ngay khi đặt vấn đề, người đặt vấn đề đã hiểu vấn đề này rồi: chữ số sau dấu * cho biết số ký tự tối đa của một String được lưu trữ trong biến (lưu ý rằng chỉ có kiểu String mới có cách khai báo này).
Vậy khi nào thì chúng ta áp dụng cách khai báo này? Đơn giản là khi ta muốn tập hợp các giá trị của biến có cùng kiểu và cùng kích thước (số ký tự) để biểu diễn một đối tượng nào đó. Chúng ta thường thấy các dữ liệu kiểu này như: Số CMND, số hoá đơn (trên 1 cuốn hoá đơn), Mã số thuế...
Thực ra lấy ví dụ là:
Dim Ten as String*20 'Tên được quy định tối đa 20 ký tự
xem ra không được hợp lý lắm. Hãy lấy ví dụ này thử xem:
Dim Ma as String*5 'Mã được quy định tối đa 5 ký tự
Dễ hiểu là bởi vì là chúng ta đang gợi ý cho người dùng trong quá trình nhập liệu biết được biến đối tượng Ma có tối đa 5 ký tự. Trường Ten thường không có quy luật này. Chính điều đó tạo lên sự nhất quán trong quá trình nhập liệu: Phát hiện những sai sót chưa nhập đủ hay vượt quá ký tự cho phép... từ đó giúp cho bộ mã đồng bộ hơn, dễ tìm hơn.
Nói tóm lại, theo kinh nghiệm của em các trường hợp áp dụng kiểu khai báo này thường là dành cho các biến mã hoá các đối tượng.
 
Lần chỉnh sửa cuối:
Web KT
Back
Top Bottom