CFSDN nhấn mạnh vào việc tạo ra giá trị thông qua mã nguồn mở. Chúng tôi cam kết xây dựng một nền tảng chia sẻ tài nguyên để mọi người làm CNTT có thể tìm thấy thế giới tuyệt vời của riêng mình tại đây.
Bài đăng trên blog CFSDN này về việc định nghĩa mảng byte trong VBS được tác giả thu thập và biên soạn. Nếu bạn quan tâm đến bài viết này, vui lòng thích nó.
Buổi tối, tôi thấy một người bạn có biệt danh "乱码" trên QQ trả lời một câu hỏi trong Soso Q&A: Có cách nào để định nghĩa một mảng byte trong VBS không? Có cách nào để định nghĩa mảng byte trong VBS không? Đây là một mảng có kiểu byte con (VarType là 8209). Lưu ý rằng nó không phải là VB! Nhưng câu trả lời lại quá kinh khủng, anh ta thậm chí còn không hiểu người kia đang hỏi gì, và anh ta thực sự hài lòng. Tôi thực sự không biết anh ta đang nghĩ gì. Tôi không có việc gì để làm nên tôi sẽ trả lời ngắn gọn. Trước hết, chúng ta cần hiểu những gì người khác đang hỏi. VBS là ngôn ngữ kịch bản có kiểu yếu với chỉ một kiểu dữ liệu, được gọi là Variant. Tuy nhiên, Variant có thể được chia thành nhiều kiểu con, sẽ không được mở rộng ở đây. Để biết chi tiết, hãy xem "Kiểu dữ liệu VBScript". Mảng được gọi là mảng kiểu con byte (VarType là 8209) là mảng có kiểu con Byte (vbByte + vbArray = 17 + 8192 = 8209). Ví dụ, thuộc tính responseBody của đối tượng Msxml2.XMLHTTP trả về một mảng byte:
Sao chép mã như sau
'Tác giả: Demon 'Trang web: http://demon.tw 'Ngày: 2012/2/22 Dim http, res Set http = CreateObject("Msxml2.XMLHTTP") http.open "GET", "http://demon.tw", False http.send res = http.responseBody WScript.Echo VarType(res), TypeName(res) .
Một ví dụ khác, phương thức Read của đối tượng ADODB.Stream cũng trả về một mảng byte:
Sao chép mã như sau
'Tác giả: Demon 'Trang web: http://demon.tw 'Ngày: 2012/2/22 Dim ado, data Set ado = CreateObject("ADODB.Stream") ado.Type = 1 ado.Open ado.LoadFromFile "demon.tw" data = ado.Read WScript.Echo VarType(data), TypeName(data) .
Vậy làm thế nào để định nghĩa một mảng byte trong VBS? Một số người nói rằng điều đó dễ, chúng ta không thể sử dụng hàm CByte để buộc chuyển đổi sao? Có thực sự như vậy không? Hãy viết một ví dụ đơn giản để kiểm tra:
Sao chép mã như sau
'Tác giả: Demon 'Trang web: http://demon.tw 'Ngày: 2012/2/22 Dim a(9), i Đối với i = 0 Đến 9 a(i) = CByte(i) Tiếp theo WScript.Echo VarType(a), TypeName(a) .
'Đầu ra 8204 Variant() Chương trình đưa ra 8204 Variant(), thật không may đây không phải là kết quả chúng ta mong muốn. Vậy cách tiếp cận đúng đắn là gì? Trên thực tế, nó xuất hiện trong "Một cách khác để đọc và ghi tệp nhị phân bằng VBS", sử dụng đối tượng Msxml2.DOMDocument:
Sao chép mã như sau
'Tác giả: Demon 'Trang web: http://demon.tw 'Ngày: 2012/2/22 Dim xmldoc, node, bytes Đặt xmldoc = CreateObject("Msxml2.DOMDocument") Đặt node = xmldoc.CreateElement("binary") node.DataType = "bin.hex" 'demon.tw Giá trị thập lục phân là '64 65 6D 6F 6E 2E 74 77 node.Text = "64656D6F6E2E7477" bytes = node.NodeTypedValue WScript.Echo VarType(bytes), TypeName(bytes).
Theo cách này, biến bytes là một mảng byte. Nếu bạn biết các phương pháp khác, vui lòng cho tôi biết. Văn bản gốc: http://demon.tw/programming/vbs-byte-array.html.
Cuối cùng, bài viết này về định nghĩa mảng byte Byte() trong VBS kết thúc tại đây. Nếu bạn muốn biết thêm về định nghĩa mảng byte Byte() trong VBS, vui lòng tìm kiếm các bài viết CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!