Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » нужен совет по обработке данных

Страниц (1): [1]
 

1. forzub - 29 Июня, 2014 - 07:44:28 - перейти к сообщению
Добрый день. Нужна консультация.
есть массив значений

int mass[200][300];

обработка его пошаговая обработка через циклы занимает очень много времени, а именно:

1. обнулить
2. сохранить в файл
3. считать из файла.

есть возможность делать эти действия не через цикл?
2. Kibor - 29 Июня, 2014 - 08:26:27 - перейти к сообщению
Не. Обнулять через цикл...

Записывать... можно в бинарном режиме, но только если число int от 0 до 255
Его надо переводить в char и записывать и считывать в нем.
Работа в бинарном режиме

CODE:
int mass[200][300];
char massC[60000];

int u=0;
int g=0;
for (int a=0; a<200; a++)
{
for (int a1=0; a1<300; a1++)
{
mass[a][a1]=g;
massC[u]=formatic(mass[a][a1]);
g++; u++;
if (g==256)g=0;
}
}

fopen ("C:\calc.txt", "wb");
fwriteb(#massC[0], 60000);
fclose();


char massC1[60000];
fopen ("C:\calc.txt", "rb");
freadb(#massC1[0], 60000);
fclose();


int mass1[200][300];
u=0;
for (a=0; a<200; a++)
{
for (a1=0; a1<300; a1++)
{
mass1[a][a1]=formatci(massC1[u]);
messagebox (mass1[a][a1]);
u++;
}
}
3. forzub - 29 Июня, 2014 - 08:35:48 - перейти к сообщению
в данной ситуации меня вполне устроил бы массив из переменных типа 1 bit

появилась идея обнулять через функцию loadimage()
загружая изображение размером 1 пиксель, соответственно согласно описанию, все остальное забивается нулями. а потом забить и этот пиксель в нуль.

так сработает?

сколько char (байт) занимает 1 int?

есть int m[200][300]
можно ли сделать массив char aa[XX], где ХХ это size(int)*(200*300 ), а потом "наложить" его на массив m (сделать указатель на начало m[][]) и потом работать с ним как с char?
4. Kibor - 29 Июня, 2014 - 08:46:31 - перейти к сообщению
 forzub пишет:
появилась идея обнулять через функцию loadimage()
загружая изображение размером 1 пиксель, соответственно согласно описанию, все остальное забивается нулями. а потом забить и этот пиксель в нуль.

не 1 пик, а загружать черное изображение 200/300... это 0.
забивается -1.

в int 4 байт..

 forzub пишет:
можно ли сделать массив char aa[XX], где ХХ это size(int)*(200*300 ), а потом "наложить" его на массив m (сделать указатель на начало m[][]) и потом работать с ним как с char?

нет. копировать только.

работайте сразу с char при случае если надо от 0 до 255.
5. forzub - 29 Июня, 2014 - 09:01:07 - перейти к сообщению
с черным тоже собственно тоже выход Улыбка


а вообще не плохо было бы, что бы как-то так Улыбка) жаль не работает Улыбка)
CODE:

int a[5];

a[0]=1;
a[0]=2;
a[0]=3;
a[0]=4;
a[0]=5;


print(#a[0]);

function print(char #b[0])
{

fopen ("D:\!bot\calc.txt", "wb");
fwriteb(#b[0], 20);
fclose();

}



т.е. в итоге имеем: или быстро обнуляем, но долго читаем и пишем или быстро читаем, но медленно обнуляем...
(Добавление)
Я так подумал... наверное проще всего делать это через изображения Улыбка))) сохранять как изображения и загружать так же Улыбка)))
6. Kibor - 29 Июня, 2014 - 09:59:29 - перейти к сообщению
 forzub пишет:
Я так подумал... наверное проще всего делать это через изображения ))) сохранять как изображения и загружать так же )))

легко... так как масив 2мерн...

Powered by ExBB FM 1.0 Final