Форум » » Требуется перевод в SIMPL+ » Ответить

Требуется перевод в SIMPL+

Вячеслав: Ребят, кому знаком данный синтаксис, будьте добры переведите на понятный мне SIMPL+: NSMutableData *commandToSend= [[NSMutableData alloc] init]; unsigned char whole_byte; char byte_chars[3] = {'\0','\0','\0'}; int i; for (i=0; i < [command length]/2; i++) { byte_chars[0] = [command characterAtIndex:i*2]; byte_chars[1] = [command characterAtIndex:i*2+1]; whole_byte = strtol(byte_chars, NULL, 16); [commandToSend appendBytes:&whole_byte length:1]; } Кое что тут имеет некоторое сходство, но вот например 1 строку вообще не понимаю

Ответов - 1

eoulianov: Ба, да эта куча скобочек отдает Apple XCode? Она получает ASCII-строку с написанными шестнадцатеричными кодами, а на выход подаёт её же, но утоптанную вдвое - например "A5B4C3D2" (8 печатных символов) должны превратиться в "\xA5\xB4\xC3\xD2" (4 непечатных символа) В S+ есть hextoi(), аналогичная strtol( строка, пусто, 16 ) https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man3/strtol.3.html, поэтому получится что-то вроде [pre]string_function commandToSend( string command ) { integer i; string out[255]; try { out=""; if( len(command) mod 2 ) generateusererror( "commandToSend(): abnormal odd input string length of %s", command ); if( len(command)>1 ) for( i=1 to len(command)/2 ) out=out+chr(hextoi(mid(command,i*2-1,2))); return( out ); } catch { generateusererror( "commandToSend(): exception thrown %s with code %d", GetExceptionMessage(), GetExceptionCode() ); } }[/pre]



полная версия страницы