"Хозяйке на заметку": прочитать данные (переменные, целые, с плавающей точкой и т.п.) из бинарного файла на 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)