17.01.2017, 19:17
|
Аспирант
|
|
Регистрация: 06.12.2016
Сообщений: 44
|
|
Объект в массив Uint8Array
Подскажите как объект конвертировать в массив типа Uint8Array?
function Datt(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) {
this.var1= v1;
this.varvar2= v2;
this.var3 = v3;
this.var4= v4;
this.var5= v5;
this.var6= v6;
this.var7= v7;
this.var8= v8;
this.var9= v9;
this.var10= v10;
};
var td = new Datt(1,1,1,1,1,1,1,1,1,1);
var buf= new Uint8Array();
buf =td.array //как преобразовать?
|
|
18.01.2017, 23:16
|
Аспирант
|
|
Регистрация: 06.12.2016
Сообщений: 44
|
|
Так не возможно сделать?
|
|
19.01.2017, 16:50
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Sergey and
Вопрос: кому и зачем нужны такая функция и такой объект?
function Datt(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) {
this.var1= v1;
this.varvar2= v2;
this.var3 = v3;
this.var4= v4;
this.var5= v5;
this.var6= v6;
this.var7= v7;
this.var8= v8;
this.var9= v9;
this.var10= v10;
};
Чтобы с ними было трудно работать?
А насчет преобразования, например, из массива
var td = [1,1,1,1,1,1,1,1,1,1];
var buf= new Uint8Array(td);
alert(buf.BYTES_PER_ELEMENT);
alert(buf);
alert(JSON.stringify( buf));
|
|
19.01.2017, 18:32
|
Аспирант
|
|
Регистрация: 06.12.2016
Сообщений: 44
|
|
Мне нужно очень.
Нужно что то подобное сделать:
typedef struct{
int a;
int b;
double f;
....
}structdata;
typedef uniou {
structdata sd;
char buff[sizeof(structdata)];
}Tdataunion;
Tdataunion rd;
send(&rd.buff[0])
это на си на скриптах у меня что то ничего неполучается(
|
|
20.01.2017, 13:19
|
Аспирант
|
|
Регистрация: 06.12.2016
Сообщений: 44
|
|
var td = [1,1,1,1,1,1,1,1,1,1];
var buf= new Uint8Array(td);
Этот код запишет в buf значение 1 + ASCII код запятой ? это не то тогда.
Нужно взять байты из памяти где храниться объект и отправить их.
function Datt(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) {
this.var1= v1;
this.varvar2= v2;
this.var3 = v3;
this.var4= v4;
this.var5= v5;
this.var6= v6;
this.var7= v7;
this.var8= v8;
this.var9= v9;
this.var10= v10;
};
var fg = new Datt;
fg нужно преобразовать в массив байт.Без добавления символов запятых ид . Подскажите пожалуйста уважаемые специалисты я в javascript плохо разбираюсь только начал изучать.
|
|
20.01.2017, 14:56
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Sergey and,
Сообщение от Sergey and
|
Этот код запишет в buf значение 1 + ASCII код запятой ?
|
Какие запятые? запятых в массиве нет. Это просто разделитель при задании и отображении массива.
var td = [1,2,3,4,5,6,7,8,9,10];
var buf= new Uint8Array(td);
alert("Количество элементов = " + buf.length + " Четвертый элемент = " + buf[3]);
|
|
20.01.2017, 15:30
|
Аспирант
|
|
Регистрация: 06.12.2016
Сообщений: 44
|
|
Понятно. Тогда то что надо ) спасибо.
|
|
22.01.2017, 12:02
|
Аспирант
|
|
Регистрация: 06.12.2016
Сообщений: 44
|
|
Вот так не получается. выходит сообщение количество элементов 0 четвертый элемент udefined (
function Datt(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) {
this.var1= v1;
this.varvar2= v2;
this.var3 = v3;
this.var4= v4;
this.var5= v5;
this.var6= v6;
this.var7= v7;
this.var8= v8;
this.var9= v9;
this.var10= v10;
};
var fg = new Datt(1,1,1,1,1,1,1,1,1,1);
var buf = new Uint8Array(fg);
alert("Количество элементов = " + buf.length + " Четвертый элемент = " + buf[3]);
Последний раз редактировалось Sergey and, 22.01.2017 в 12:08.
|
|
23.01.2017, 11:08
|
Профессор
|
|
Регистрация: 27.11.2015
Сообщений: 2,899
|
|
Sergey and,
Я так и не понял, зачем вам нужна эта дурацкая функция.
Если очень хочется преодоления трудностей -
function Datt(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10) {
this.var1= v1;
this.var2= v2;
this.var3 = v3;
this.var4= v4;
this.var5= v5;
this.var6= v6;
this.var7= v7;
this.var8= v8;
this.var9= v9;
this.var10= v10;
};
var fg = new Datt(1,1,1,1,1,1,1,1,1,1);
var fa = [];
for(var i = 1; i <= 10; i++) {
fa[i - 1] = fg['var'+i];
}
var buf = new Uint8Array(fa);
alert("Количество элементов = " + buf.length + " Четвертый элемент = " + buf[3]);
|
|
|
|