Các biến thể luôn vui vẻ, eh?Làm thế nào để biết một biến thể Delphi là một chuỗi rỗng?
Tôi đang làm việc trên một ứng dụng kế thừa đã được cuối cùng trong D2007 để di chuyển nó đến Delphi XE.
Các biến thể đã thay đổi một chút trong thời gian tạm thời.
dòng mã này:
if (VarType(Value) = varString) and (Value = '') then
Exit;
trở True và thoát trong D2007, nhưng không ở Delphi XE.
Tôi đã thay đổi nó như thế này:
if VarIsStr(Value) and (VarToStr(Value) = '') then
Exit;
Tôi không thuyết phục đây là "tốt nhất" con đường để đi. Đơn vị Biến thể không có một cuộc gọi cụ thể để làm điều này, và tôi chắc chắn nhớ lại đây là một vấn đề cho folks trong quá khứ. Tuy nhiên, một tìm kiếm không tiết lộ chức năng thư viện hoặc bất kỳ cách nào được chấp nhận khác.
Có cách nào "chính xác" hoặc tốt hơn không?
Ngẫu nhiên 'v = ''' là đúng, nếu tôi gán nó một cách rõ ràng cho 'v: = '';' - Tôi đoán là có nhiều hơn một kiểu biến thể chuỗi, có lẽ là B_STR và một cái gì đó khác, và vì vậy so sánh yếu tố không thành công, mặc dù nội dung giống nhau. –
Wont 'nếu VarToStr (Value) = ''' một mình làm công việc? – kobik
@kobik Điều này không thành công, ví dụ, khi 'Giá trị' bằng' Null'. –