powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Преобразование типов.
10 сообщений из 10, страница 1 из 1
Преобразование типов.
    #39562637
Maguark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Не могу понять, что происходит.

Цель сейчас примитивная, нужно получить через виртуальный ком порт пакет и отправить его-же обратно.

Устройство отправляет пакеты в хекс формате типа
"FF 07 03 31 32 33 9F"
Я получаю пакет
ComPort.Read(Str[1],Count);
С помощью IntToHex(Ord(Str[i]),2) я вывожу принятое значение в RichEdit и вижу, что я принял именно "FF 07 03 31 32 33 9F".
Сразу после чтения я пишу:
ComPort.WriteStr(Str);
Но моё устройство ловит вот такой пакет:
"4F 07 03 31 32 33 5F"
И почему первый и последний байт меняется я ни как не могу понять.
...
Рейтинг: 0 / 0
Преобразование типов.
    #39562643
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaguarkИ почему первый и последний байт меняется я ни как не могу понять.

Потому что, когда имеешь дело с байтами, надо оперировать массивами байт, а не строками
символов. Где-то у тебя происходит неконтролируемое преобразование кодировки, отчего всё,
что больше 127 и корёжится.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Преобразование типов.
    #39562644
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
никому не рассказывай что такое ComPort и не читай документацию к нему
...
Рейтинг: 0 / 0
Преобразование типов.
    #39562649
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Maguark,
Ну явно же старший бит каждого байта теряется.
Перед отправкой строки преобразуй данные в 16сс - строку. Или в 64сс.
...
Рейтинг: 0 / 0
Преобразование типов.
    #39562652
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДНу явно же старший бит каждого байта теряется.
Не угадал, два чуть младше старшего.
...
Рейтинг: 0 / 0
Преобразование типов.
    #39562654
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
чччДНу явно же старший бит каждого байта теряется.

В этом случае из FF стало бы 7F, а не 4F.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Преобразование типов.
    #39562656
чччД
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,
Да, фигню сморозил.
...
Рейтинг: 0 / 0
Преобразование типов.
    #39562658
Maguark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
Не указал сразу, виноват.
У меня
Str: AnsiString;
AnsiString это разве не эквивалент массиву байт?
...
Рейтинг: 0 / 0
Преобразование типов.
    #39562664
Maguark
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Более того, не забываем я же проверяю, что я принял и что у меня записано в Str выводя всё в НЕХ формате в RichEdit. И в RichEdit у меня всё выводится правильно.
...
Рейтинг: 0 / 0
Преобразование типов.
    #39562676
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MaguarkAnsiString это разве не эквивалент массиву байт?

Нет. Это строка символов в текущей ANSI кодировке.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Преобразование типов.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]