Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 2
1

Преобразование переменных

19.01.2019, 12:02. Показов 661. Ответов 3
Метки нет (Все метки)

ЗД всем!

Такой вопрос...
С ком порта получаю, 32 байта, из них 1-4 это long без знака, 5-6 это int без знака, 7-20 это массив char[13] и 21-32 это тоже массив char[13]. char-ы это строки и заканчивается 0, строки могут быть разного размера, т.е. не больше 12 символов, но могут быть меньше, остальное 0.

с числовыми вроде получается
Delphi
1
2
3
4
5
6
tmp_byte : Array[0..31] of Byte;
tmp_uint : Word;
tmp_ulong : Longword;
 
Move(tmp_byte[0], temp_ulong, SizeOf(temp_ulong));
Move(tmp_byte[4], temp_uint, SizeOf(temp_uint));
А вот с строкой не очень получается
Delphi
1
2
Edit1.Text := Copy(string(@tmp_byte), 6, 19);
Edit2.Text := Copy(string(@tmp_byte), 20, 31);
Копирует чушь

И затем надо оправить в компорт обратно 32 байта
Delphi
1
2
3
4
5
6
7
8
9
out_byte : Array[0..31] of Byte;
tmp_uint: Word;
tmp_ulong: Longword;
 
tmp_long := StrToInt64(Trim(Edit4.Text));
Move(tmp_ulong, out_byte[0], 4);
 
tmp_int := StrToInt(Trim(Edit3.Text));
Move(tmp_uint, out_byte[4], 2);
И тут не получается записать строку в массив байта с 6-19, 20-31, и закончить строку 0
Delphi
1
2
3
4
5
Edit1.Text := Trim(Edit1.Text);
Move(Edit1.Text[1],out_byte[6],Length(Edit1.Text));
 
Edit2.Text := Trim(Edit2.Text);
Move(Edit2.Text[1],out_byte[20],Length(Edit1.Text));

Подскажите, кто знает, пожалуйста......
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.01.2019, 12:02
Ответы с готовыми решениями:

Преобразование переменных
#include <iostream> #include <string> using namespace std; int main() { int j,i=5;...

Преобразование переменных
Товарищи, подскажите пожалуйста как перевести из UnicodeString в char, const char и long? Гуглить...

Преобразование переменных
Пожалуйста помогите решить две не сложные задачи: 1.Дано вещественное(4 цифры после запятой и 4...

Преобразование типов переменных
Возник небольшой вопрос Конвертировать следующие форматы BIT в FLOAT NVARCHAR в INT DATETIME...

3
5086 / 3966 / 1309
Регистрация: 14.04.2014
Сообщений: 18,249
Записей в блоге: 18
19.01.2019, 12:52 2
для начала сообщите версию Delphi
потому что char это не всегда byte
но в общем случае это
Delphi
1
2
3
4
5
6
TPacket = packed Record
  L:integer;
  w:word;
  a1:array[0..12] of AnsiChar;
  a2:array[0..12] of AnsiChar;
end;
можно просто читать прямо в эту структуру
и оттуда же писать
0
0 / 0 / 0
Регистрация: 22.07.2015
Сообщений: 2
19.01.2019, 13:38  [ТС] 3
Прошу прошения, очень редко пользуюсь delphi
версия delphi7
char[13], т.е. макс 12 символов, последний символ 0х00 (конец строки).

Добавлено через 28 минут
Возможно не верно написан мой вопрос...

in_byte: array [0..12] of byte = (84,101,115,116,0,0,0,0,0,0,0,0,0); //Test
получить строку AnsiString равной 'Test'

и наоборот
из строки AsniString = 'TestTest' получить
in_byte: array [0..12] of byte = (84,101,115,116,84,101,115,116,0,0,0,0,0); //TestTest

Про структуры спасибо, не знал что они есть, буду обязательно использовать, очень удобно.
0
5086 / 3966 / 1309
Регистрация: 14.04.2014
Сообщений: 18,249
Записей в блоге: 18
19.01.2019, 15:12 4
Delphi
1
2
3
4
s:string;
a:array[0..12] of char;
достаточно просто
s:=a;
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.01.2019, 15:12

Преобразование переменных в Ole
Всем добрый день, никак не могу правильно в word документ вывести текст из Edit ...

Преобразование типов переменных
Доброго вечера. Можете показать при пример преобразования переменной TString в AnsiString ...

Преобразование типа переменных
Как закодировать переменную в byte и обратно, а если точнее в bitmap?

Преобразование типов переменных
Осуществить преобразование типов переменных явным и неявным способом по следующим схемам: float...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru