|
|
|
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, 11:46 |
|
||
|
Pointer to string
|
|||
|---|---|---|---|
|
#18+
xarfan, Код: pascal 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2020, 12:01 |
|
||
|
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, 12:42 |
|
||
|
Pointer to string
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey xarfan, Код: pascal 1. 2. Код: pascal 1. Разумеется, это всё справедливо для старых, не Unicode дельфи. Если 2009 и выше, то лучше использовать TBytes. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2020, 13:08 |
|
||
|
Pointer to string
|
|||
|---|---|---|---|
|
#18+
Kazantsev Alexey, Благодарю за помощь! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.02.2020, 13:16 |
|
||
|
Pointer to string
|
|||
|---|---|---|---|
|
#18+
alekcvp Если 2009 и выше, то лучше использовать TBytes. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 15:28 |
|
||
|
Pointer to string
|
|||
|---|---|---|---|
|
#18+
_Vasilisk_ alekcvp Если 2009 и выше, то лучше использовать TBytes. И снова получить проблемы на нулях в строке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 16:00 |
|
||
|
Pointer to string
|
|||
|---|---|---|---|
|
#18+
alekcvp И снова получить проблемы на нулях в строке... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 16:18 |
|
||
|
Pointer to string
|
|||
|---|---|---|---|
|
#18+
Мб, RawByteString? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2020, 18:52 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39924864&tid=2038614]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
147ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 442ms |

| 0 / 0 |
