"Хозяйке на заметку": прочитать данные (переменные, целые, с плавающей точкой и т.п.) из бинарного файла на Vala можно и нужно с помощью GVariant, например так:
{ uint8[] buf = new uint8[sizeof(uint32) + sizeof(uint32) + sizeof(double) + sizeof(double)]; { var data_stream = new DataInputStream(file.read()); data_stream.read(buf); } Variant variant = Variant.new_from_data<uint8>( new VariantType("(uudd)"), buf, true); uint32 int1 = variant.get_child_value(0).get_uint32(); uint32 int2 = variant.get_child_value(1).get_uint32(); double double1 = variant.get_child_value(2).get_double(); double double2 = variant.get_child_value(3).get_double(); stdout.printf("int 1 = %u\n", int1); stdout.printf("int 2 = %u\n", int2); stdout.printf("double 1 = %f\n", double1); stdout.printf("double 2 = %f\n", double2); }
0 коммент.:
Подписаться на:
Комментарии к сообщению (Atom)