这段代码怎样用DELPHI写出来?难啊!
急死人啊!
注:这是C++ for win3.1 program.
限用MSCOMM组件,(因为在WIN2k下不能用别的东东!)
long MainWindow::H_position()
{
long position;
int j,
i,
delay,
length,
keycode,
H_exit = 0,
InPut,
slength;
char s[100],
sr[100],
s1[10],
c;
strcpy(sr, "%1PR%");
strcpy(s, "");
do{
InPut=inportb(0x2fd);
}while((InPut & 0x0E)||(!(InPut & 0x20))); //wait data
slength = strlen(sr);
for(i=0;i<slength;i++){
if(sr[i] != '%'){
outportb(0x2f8,(int)sr[i]);
H_delay();
}
else{
outportb(0x2f8,0x0d);
H_delay();
outportb(0x2f8,0x0A);
H_delay();
}
}
while(H_exit == 0)
{
while(inportb(0x2fd)&0x01)
{
c = inportb(0x2f8);
switch(c)
{
case 0x0D: break;
case 0x0A: if( strlen(s) <= 6)
{
strcpy(s," ");
break;
}
else
{
H_exit = 1;
break;
}
case '\0': break;
default :
{
sprintf(s1, "%c", c);
strcat(s, s1);
break;
}
}
}
}
if((keycode=strlen(s)) >= 8) //只取后8位
{
delay = strlen(s) - 8;
for(j=0; j < 8; j++)
{
s[j] = s[j+delay];
}
for(j=8; j<keycode; j++)
{
s[j] = '\0';
}
}
position=atol(s);
return(position);
}