bindata
1.0.0
هل وجدت نفسك يومًا تكتب كودًا مثل هذا؟
io = File . open ( ... )
len = io . read ( 2 ) . unpack ( "v" )
name = io . read ( len )
width , height = io . read ( 8 ) . unpack ( "VV" )
puts "Rectangle #{ name } is #{ width } x #{ height } "
إنه قبيح، ينتهك DRY ولا يشبه روبي.
هناك طريقة أفضل. إليك كيفية كتابة ما ورد أعلاه باستخدام BinData.
class Rectangle < BinData :: Record
endian :little
uint16 :len
string :name , :read_length => :len
uint32 :width
uint32 :height
end
io = File . open ( ... )
r = Rectangle . read ( io )
puts "Rectangle #{ r . name } is #{ r . width } x #{ r . height } "
يوفر BinData طريقة تعريفية لقراءة وكتابة البيانات الثنائية المنظمة.
وهذا يعني أن المبرمج يحدد تنسيق البيانات الثنائية، ويعمل BinData على كيفية قراءة البيانات وكتابتها بهذا التنسيق. إنه بديل أسهل (وأكثر قابلية للقراءة) لطرق #pack
و #unpack
الخاصة بـ Ruby.
يجعل BinData من السهل إنشاء أنواع بيانات جديدة. وهو يدعم جميع أنواع البيانات البدائية الشائعة الموجودة في تنسيقات البيانات الثنائية المنظمة. تم تضمين دعم الحقول التابعة والمتغيرة الطول.
$ gem install bindata
دليل بينداتا.
إذا كان لديك أي استفسارات / تقارير الأخطاء / الاقتراحات، يرجى الاتصال بي (ديون مندل) عبر البريد الإلكتروني على [email protected]