Tôi có một số giá trị hex mà tôi cố gắng ghi vào tệp. Có vẻ như Lua không ủng hộ điều đó, vì tất cả chúng đều được coi là chuỗi thay vì giá trị. Tôi figured tôi sẽ phải phá vỡ một giá trị hex dài hơn, ví dụ AABBCC vào AA, BB, CC và sử dụng string.char() trên tất cả các giá trị thập phân của họ liên tiếp để có được công việc làm.Lua: viết giá trị thập lục phân dưới dạng tệp nhị phân
Có chức năng tích hợp sẵn cho phép tôi viết trực tiếp các giá trị đó mà không cần chuyển đổi chúng trước không? Tôi đã sử dụng các ký tự thoát như "0xAA" và "\ xAA", nhưng các ký tự đó không hoạt động.
Chỉnh sửa: Hãy để tôi cung cấp cho bạn một ví dụ. Tôi đang nhìn vào một tập tin thử nghiệm trong một trình soạn thảo hex:
00000000 00 00 00 00 00 00 ......
Và tôi muốn viết thư cho nó trong thời trang sau đây với chuỗi "aabbcc":
00000000 AA BB CC 00 00 00 ......
gì tôi nhận được dù với các nhân vật thoát là:
00000000 41 41 42 42 43 43 AABBCC
Hoàn hảo! Chỉ cần những gì tôi đang tìm kiếm. Cảm ơn rất nhiều! – Zerobinary99
Giải pháp này dường như thêm giá trị hex 0c0D (hoặc 13) vào một số địa điểm, dường như là ngẫu nhiên. Nó rất gần với những gì tôi cần. –
Vâng, bạn có đang viết điều này trên Windows không? Nếu có, thì vấn đề nằm trong [ngắt dòng] (http://en.wikipedia.org/wiki/Line_break_ (máy tính)). Trong khi trên Unix/Linux/Mac OS X dòng mới được biểu diễn bằng đơn '\ n' = 0x0A, trên Windows khi bạn nhập một dòng mới, nó nhúng hai byte - 0x0D, 0x0A (13 10, CR + LF).Đây có thể là lý do tại sao bạn nhìn thấy 0x0D ở những nơi ngẫu nhiên. Hãy thử để xem nếu nó là gần 0x0A - nếu đây là trường hợp, sử dụng công cụ chuyển đổi để chuyển đổi sang phong cách Unix (đơn '\ n'). –