
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
08.02.2020, 11:46
|
|||
|---|---|---|---|
|
|||
Pointer to string |
|||
|
#18+
Добрый день. Возникла необходимость поддержки старого кода. Сам я на Delphi не писал, поэтому все сложно: Имеется компонент Comm32. У него есть событие ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word). Далее var RecivedStr: string и RecivedStr:=PChar(Buffer), после анализируем что пришло на com-порт Изменился опрашиваемый прибор и теперь, в ответе от прибора присутствует нулевой символ. Как я понимаю, при загрузке его в RecivedStr строка заканчивается и в ней остается только то, что было до нулевого символа, все остальное отбрасывается. Т.е. по порту пришло: Read data (COM4) 40 03 06 00 00 08 12 00 00 bf 43 (@........їC), а в RecivedStr только первые 3 символа. Как правильно прочитать Buffer? Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.02.2020, 12:01
|
|||
|---|---|---|---|
|
|||
Pointer to string |
|||
|
#18+
xarfan, Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.02.2020, 12:42
|
|||
|---|---|---|---|
Pointer to string |
|||
|
#18+
xarfan, всё сложно, потому что сделано плохо - использовать строки как буферы так себе идея. переписав на массив байт гарантированно получишь все данные в любой версии делфи. ну а как от байтов к строкам перейти уже нужно смотреть на версию delphi. вот ссылки для ознакомления с вариантами (не всеми): https://www.sql.ru/forum/698354/perevod-tbytes-v-stroku https://www.sql.ru/forum/1200089/kak-stroku-sohranit-v-massiv-bayt-i-prochitat-ee-obratno ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.02.2020, 13:08
|
|||
|---|---|---|---|
Pointer to string |
|||
|
#18+
Kazantsev Alexey xarfan, Код: pascal 1. 2. Код: pascal 1. Разумеется, это всё справедливо для старых, не Unicode дельфи. Если 2009 и выше, то лучше использовать TBytes. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.02.2020, 13:16
|
|||
|---|---|---|---|
|
|||
Pointer to string |
|||
|
#18+
Kazantsev Alexey, Благодарю за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.02.2020, 15:28
|
|||
|---|---|---|---|
|
|||
Pointer to string |
|||
|
#18+
alekcvp Если 2009 и выше, то лучше использовать TBytes. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.02.2020, 16:00
|
|||
|---|---|---|---|
Pointer to string |
|||
|
#18+
_Vasilisk_ alekcvp Если 2009 и выше, то лучше использовать TBytes. И снова получить проблемы на нулях в строке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.02.2020, 16:18
|
|||
|---|---|---|---|
|
|||
Pointer to string |
|||
|
#18+
alekcvp И снова получить проблемы на нулях в строке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.02.2020, 18:52
|
|||
|---|---|---|---|
Pointer to string |
|||
|
#18+
Мб, RawByteString? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&tablet=1&tid=2038614]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 237ms |
| total: | 489ms |

| 0 / 0 |
