int bit_to_ascii(const char core[ ], char data[ ])
{
int i,ii,track=0,sum=0,total=128;
int t,num=0;
int asum;
char value;
int a;
for (i=0,ii=0;core[i] != '\0';i++)
{
switch(core[i])
{
case '0':
case '1':
sum += total * (core[i] - '0');
total /= 2;
ii++;
asum = sum;
printf("%d\n",sum);
if(ii == 8)
{
if (sum > 31 && sum < 127)
{
data[track] = sum;
track++;
}
sum = 0;
total = 128;
ii = 0;
}
case 'R':
if (core[i+1] == 'P' && core[i+2] =='T')
{
if (core[i+3] > '0' && core[i+3] <= '2')
num += (core[i+3] -'0');
if (core[i+4] >= '0' && core[i+4] <= '9')
{
num=0;
num += ((core[i+3] -'0') * 10 ) + (core[i+4] -'0');
}
if (core[i+5] >= '0' && core[i+5] <= '9')
{
num=0;
num += ((core[i+3] -'0') * 100 ) + ((core[i+4] -'0') * 10) + (core[i+5] -'0') ;
}
// printf("%d %d\n",num,asum);
if (sum>31 && sum<127 && ii != 8)
data[track] = asum;
asum=0;
value = data[track];
for (t=0;t<num;t++)
{
data[track+t] = value;
// printf("%c\n",value);
}
num = 0;
}
}
}
// for (a=0;a<6;a++){
// printf("%c\n",data[a]);}
return track + 1;
}
|