|

楼主 |
发表于 2008-8-22 20:48:05
|
显示全部楼层
int CVICALLBACK ReadFromFile (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2)
{
//char *t;
int i,j,k,m,len=0;
int a,b,d,xbnum,endnum,fnum;
char f[4];
char c1,c2;
unsigned char c3,c4,c;
switch (event)
{
case EVENT_COMMIT:
FileSelectPopup ("", "*.dat", "", "读取数据",VAL_LOAD_BUTTON, 0, 0, 1, 0, Rfilename);
Readfp= fopen(Rfilename, "r");
FromFile=1;
while(!feof(Readfp))
{
t[len]=fgetc(Readfp);
len++;
}
fclose(Readfp);
first=(char *)malloc(len);
///去掉枕头及0x
for(i=18,j=0;i<len;i++,j++)
{
if((t=='0')&&(t[i+1]=='x'))
i=i+2;
first[j]=t;
}
temp= (char *)malloc(j);
//去掉空格
for(k=0,m=0;k<j;k++,m++)
{
if(first[k]==0x0A)
k=k+1;
temp[m]=first[k];
}
free(first);
d=(int)(m/2)+1;
end =(char *)malloc(d);
for (a=0,b=0;a<m;a++,b++)
{
c1=0;
c2=0;
c3=0;
if((temp[a]>='0')&&(temp[a]<='9'))
c1=temp[a]-'0';
else if((temp[a]>='A')&&(temp[a]<='F'))
c1=temp[a]-'A'+10;
a++;
if(a>=d)break;
if ((temp[a]>='0')&&(temp[a]<='9')) //
c2=temp[a]-'0'; //'0'到'9'
else if ((temp[a]>='A')&&(temp[a]<='F'))
c2=temp[a]-'A'+10; //'A'到'F'
c3=c1*16+c2;
x=c3; //问题处在这里,x里面没有数据,
if (b>=d)break;
printf("this is a test %x\n",x); //可是这里却能打印出数据,
}
}
free(end);
}
return 0;
}
///下面是原始数据
1651 1 10000 0 28
0x000055AA
0xD73C6F34
0xC7BACF43
0xBD3C5C76
0xDAC120DA
0x833E8562
0x55BD6F21
0x044336D5
0x48435074
0xA442DCF3
0x9A0055AA |
|