![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Тема: Необходимо преобразовать данные, полученные с COM-порта (с бесконтактной карты EmMarine, поднесенной к proximity-считывателю) в десятичный формат (должны получить числовой идентификатор типа 61281581286128254128696102152254128120128254)
Код:
procedure TMainForm.ReadDataClick(Sender: TObject); Var RCBuf:PChar; //Буфер данных для приема nToRead:Cardinal; //Число байт для чтения nRead:Cardinal; //Число прочитанных байт ComStat:TComStat; //Состояние порта Errs:Dword; begin ClearCommError(POrt,Errs,@ComStat); //Считываем состояние порта nToRead:=ComStat.cbInQue; //Считываем число байт для чтения из структуры nToReadLabel.Caption:=IntToStr(nToRead); //Выводим на форму число байт для чтения ReadFile(Port,RCBuf^,nToRead,nRead,nil); //Считываем данные nReadLabel.Caption:=IntToStr(nRead); //Выводим на форму число прочитанных байт RcDataLabel.Caption:=RCBuf; //Выводим на форму считанные данные end; proximity-считыватель присоединен к порту COM №1 Порт открывается Число байт для чтения: 11 Число прочитанных байт: 11 Данные принимаются, но в формате иероглифов (см. скрин) ![]() Как эти данные преобразовать в человеческий вид. Типа в 61281581286128254128696102152254128120128254. Как реализовать это через массив, или другими способами? ![]() |