Delphi

Char delphi: delphi — Разница в использовании Char vs (PChar or ^Char)

Соответствия типов Object Pascal Delphi и C++ × C++ Builder программирование

  • Главная
  • FAQ
  • Соответствия типов Object Pascal Delphi и C++

23 июня 2021

Delphi

Размер или значение

Соответствие С++

Реализация

Shortlnt

целое 8 бит

signed char

typedef

Smalllnt

целое 16 бит

short

typedcf

Longlnt

целое 32 бита

int

typedef

Byte

целое без знака 8 бит

unsigned char

typedef

Word

целое без знака 16 бит

unsigned short

typedef

Integer

целое 32 бита

int

typedef

Cardinal

целое без знака 32 бита

unsigned int

typedef

Boolean

true/false

bool

typedef

ByteBool

true/false или целое без знака 8 бит

unsigned char

typedef

WordBool

true/false или целое без знака 16 бит

unsigned short

typedef

LongBool

true/false или целое без знака 32 бита

BOOL (WinAPI)

typedef

AnsiChar

символ без знака 8 бит

char

typedef

WideChar

символ Unicode размером в» слово

wchar t

typedef

Char

символ без знака 8 бит

char

typedef

AnsiString

AnsiString Delphi

AnsiString

класс

String[n]

прежний стиль строк Delphi, n = 1. .255 бит

SmallString<n>

шаблон класса

ShortString

прежний стиль строк Delphi, 255 бит

SmaIlString<255>

typedef

String

AnsiString Delphi

AnsiString

typedef

Single

число с плавающей запятой 32 бита

float

typedef

Double

число с плавающей запятой 64 бита

double

typedef

Extended

число с плавающей запятой 80 бит

long double

typedef

Real

число с плавающей запятой 32 бита

double

typedef

Pointer

родовой указатель 32 бита

void *

typedef

PChar

указатель на символы 32 бита

unsigned char *

typedef

PAnsiChar

указатель на символы ANSI 32 бита

unsigned char*

typedef

Comp

число с плавающей запятой 64 бита

Comp

класс

OleVariant

значение variant OLE

OleVariant

класс

Поделиться


Джойстики для программирования — #21 от Tridelvior — Programming

Шеф Дельфи

Райан_М

#11

Фотоплазма:

По сути, если вы понимаете двоичный код, вы можете воспользоваться шляпой POV для управления своим роботом.

Вы также должны уметь работать с битами в C!

Джо_Росс

#12

Астронаут7303:

Итак, битовые маски:

const unsigned char Hat_None = 0x2C;
const unsigned char Hat_Up = 0xFC;
const unsigned char Hat_Left = 0x60;
const unsigned char Hat_Right = 0xC0;
константный символ без знака Hat_Down = 0x94;
// Если значения не отключены, комбинации не объединяются по ИЛИ
const unsigned char Hat_Up_Left = 0xFC;
const unsigned char Hat_Up_Right = 0xFC;
const unsigned char Hat_Down_Left = 0xA4;
const unsigned char Hat_Down_Right = 0xD4;
 

Почему бы не #define их вместо того, чтобы занимать память?

дельтакодер1020

№13

Крис Хлева:

У меня есть вопрос, как мне добавить нужные строки кода, чтобы шляпы POV работали с новым языком C в этом году? Среди прочего, где мне нужно их определить и сопоставить с правильными портами ввода-вывода для работы с входным сигналом hex/bin?

пример:

если ((p1_wheel & 0xC0) == 0xC0)
{
     // управление шляпой сдвинуто вправо
}
иначе если ((p1_wheel & 0xA4) == 0xA4)
{
     // управление шляпой сдвинуто вниз-влево
}
...
и так далее
...
 

просто используйте побитовую функцию И (&), чтобы определить, установлены ли правильные биты.

система

№14

Спасибо, очень помогло.

Я только начинаю с C, так что я все еще немного схематичен с ним.

дельтакодер1020

№15

нет проблем. если вам нужен обзор синтаксиса C, вы можете попробовать различные руководства в разделе технических документов или руководство, над которым я работаю (см. ветку на этом форуме под названием «ПЕРВОЕ руководство по программированию»)

Erico

№16

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

УДАЧИ В ЭТОМ ГОДУ

deltacoder1020

# 17

входы от джойстиков хранятся в диапазоне переменных (фактически псевдонимов), настроенных в ifi_aliases.h: например,

, ось x первого джойстика — p1_x

, если вы хотите, чтобы джойстик был прямым pwm, просто используйте что-то вроде следующей строки:

pwm01 = p1_x;

Райан_М

# 18

Эрико:

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

УДАЧИ В ЭТОМ ГОДУ

Просто чтобы расширить то, что сказал DeltaCoder, джойстики обозначаются как p X _x и p X _y, где X — это номер порта, к которому подключен джойстик. Например, чтобы получить доступ к осям x и y джойстика порта, вы должны использовать p1_x и p1_y.

Значение, поступающее на эти контакты, находится в диапазоне от 0 до 255 ( беззнаковый символ ). 0 заполнен с одной стороны, 127 — центр, а 255 — заполнен с другой стороны. Например, если вы переместите джойстик полностью вперед, p1_x будет равно 255, а p1_y будет равно 127. Если вы переместите его полностью вправо, p1_y будет равно 127, а p1_y будет равно 255.

Вы также можете сочетание того и другого, конечно. Например, если вы находитесь в переднем, правом углу, вы получите p1_x и p1_y, оба со значением 255.

Вы можете использовать эти значения в своей программе как угодно. Только не пытайтесь изменить их значение в коде; это не сработает!

Надеюсь, это поможет. Удачи.

Астронаут7303

# 19

Джо_Росс:

Почему бы не #define их вместо того, чтобы занимать память?

Мне не нравится использовать #define для констант. Кроме того, у нас есть память, которую нужно убить.

дельтакодер1020

11 февраля 2004 г., 21:19

#20

Астронаут7303:

Мне не нравится использовать #define для констант. Кроме того, у нас есть память, которую нужно убить.

хм… судя по всему, системе форума удалось разместить ответ в другой ветке… правильно.

Тридельвиор

# 21

Знаете ли вы недвоичные значения pX_wheel в их верхнем и нижнем положениях?

Я пытаюсь использовать их значения с ШИМ и не знаю, что использовать.

темп = p1_wheel;

if (temp==КАКОЕ ЗНАЧЕНИЕ?[ВВЕРХ]){
pwm02=200;
}
else[DOWN]{
pwm02=55;
}

Райан Камингс

# 22

дельтакодер1020:

пример:

если ((p1_wheel & 0xC0) == 0xC0)
{
     // управление шляпой сдвинуто вправо
}
иначе если ((p1_wheel & 0xA4) == 0xA4)
{
     // управление шляпой сдвинуто вниз-влево
}
...
и так далее
...
 

просто используйте побитовую функцию И (&), чтобы определить, установлены ли правильные биты.

Давненько не было, но вот (Извините, дельта!)
Если вы нажмете шляпу на свой код, то по умолчанию будет использоваться первое введенное вами условное выражение.

Правильнее было бы сделать это так (используя константы, любезно предоставленные Astronouth7303)

переключатель (px_wheel и 0xFC) {
чехол Hat_Up_Left: {
// ... Код здесь
сломать;
}
case Hat_Up_Right: {
// ... Код здесь
сломать;
}
// и т.д...
По умолчанию: {
сломать;
}
}
 

Роберт_Хафнер

# 23

Кто-нибудь может мне помочь?

Мне нужно, чтобы кто-нибудь выполнил и т. д. часть

if( (p1_wheel & 0xC0) == 0xC0 )
{
//элемент управления сдвинут вправо
}
else if( (p1_wheel & 0xA4) == 0xA4 )
{
//элемент управления сдвинут вниз-влево
}

и так далее

так что я могу сделать это правильно. Я немного медлителен, когда дело доходит до двоичных и шестнадцатеричных кодов

deltacoder1020

# 24

здесь они в двоичной, десятичной и шестнадцатеричной формах…

Нейтральный: 001011xx 44 0x2c
влево: 111111xx 252 0xfc
Вверх: 111111xx 252 0xfc
Вправо: 111111xx 252 0xfc
слева: 011000xx 96 0x60
. 148 0x94
Внизу справа: 110101xx 212 0xD4

система

# 25

Вот диаграмма, на которой представлен полный диапазон значений, и значение для проверки с помощью И выделено жирным шрифтом.

252 -255 252 -255 252 -255
96 -99
44 -47 200**-203
164 -167
148**-151
212 -215

Роберт_Хафнер

# 26

Поскольку последние биты ненадежны (из того, что я читал), как это повлияет на программу? Должен ли я придерживаться общей области? пример:

 если (p1_wheel >= 42 && p1_wheel <= 46)
    // я нейтрален
если (p1_wheel >= 250 && p1_wheel <= 254)
     // я вверху слева;
 

дельтакодер 1020

# 27

ваш предыдущий код с побитовым И (&) должен работать нормально - просто используйте шестнадцатеричные или десятичные коды, которые я разместил выше (потому что вы И это с исходной константой, младшие биты не имеют значения, и, таким образом, это будет верно на весь ассортимент).

Роберт_Хафнер

# 28

, рискую показаться глупым, как работает оператор AND и что мне с ним делать?

дельтакодер 1020

# 29

если ((p1_wheel & 0xC0) == 0xC0)
 

«&» — это оператор «побитовое И». это означает, что он просматривает отдельные биты значения и выполняет операцию И. И определяется следующим образом: истина, если оба входа истинны, иначе ложь. логическая таблица:

0, 0 = 0
1, 0 = 0
0, 1 = 0
1, 1 = 1

, так что, как видите, он вернет единицы только в тех местах, где оба числа имеют единицы. таким образом, он вернет все биты одного значения только в том случае, если те же биты равны 1 в другом значении. оператор if, по сути, проверяет, что все биты, равные 1 в 0xC0, также равны 1 в p1_wheel. замените 0xC0 на любую «битовую маску» (набор битов), которую вы хотите протестировать как 1.

iamjarret

#30

привет, у меня есть вопрос
мы подключили двигатель к порту pwn, который соответствует p1_wheel (колесо)
и интерфейс оператора показывает, что когда мы двигаем колесо, значения меняются (ввод), но это не так. перемещение мотора. Он правильно сопоставлен (pwm09 = p1_wheel;)

, как я могу заставить его работать

, я также хотел бы сделать код, в котором сделанный pwm должен работать со скоростью 255, когда p4_sw_trig (триггер) нажат (равно 1).

мой код пока равен
if (p4_sw_trig == 1)
{
pwm12 = 255; (для этого я закомментировал pwm12 = p4_wheel;)

 я также пробовал p4_wheel = 255;
и я попробовал p4_wheel = 0xFC;
 

}

наконец, ось y не работает на портах 3 и 4 на любом джойстике я пытаюсь

пожалуйста помогите мне исправить мой код, колеса и оси y

спасибо

← предыдущая страница

-функции - Googlesuche

AlleBilderVideosNewsMapsShoppingBücher

suchoptionen

функции Visual FoxPro для обработки текста - Alvechurch Data

www. alvechurchdata.co.uk › компания › foxtext

команды и функции Foxpro для управления символами и текстом.

Строковые и текстовые функции FoxPro — Alvechurch Data

www.alvechurchdata.co.uk › foxtext

С самого начала FoxPro всегда имел широкий набор команд и функций для обработки текста — больше, чем необходимо для язык базы данных.

Обработка строк с помощью VFP — журнал CODE

www.codemag.com › article › Обработка строк с помощью...

09.12.2021 · VFP имеет ряд полезных функций для замены текста. STRTRAN(), CHRTRAN(), CHRTRANC(), STUFF() и STUFFC(). STRTRAN() ...

[PDF] FoxPro Functions — NC School Bus Safety

ncbussafety.org › TIMS › Reference › Foxpro_Functions

Функция DTOS() возвращает строку символов в формате ГГГГММДД для заданной даты выражение. Эта функция полезна при индексации поля даты.

Строковые функции (драйвер ODBC для Visual FoxPro) — Microsoft Learn

Learn. Microsoft.com › Learn › SQL › SQL Server

18.11.2022 · В этой статье. В следующей таблице перечислены функции обработки строк ODBC, поддерживаемые драйвером ODBC для Visual FoxPro. когда Visual ...

Функция, Процедура, Возврат, EndFunc, EndProc

hackfox.github.io › section4

Visual FoxPro 7 содержит небольшое усовершенствование, позволяющее возвращать массивы из процедуры или функции. Существуют некоторые ограничения на возврат массива.

Ähnliche Fragen

Каковы функции FoxPro?

Что такое процедуры в Visual FoxPro?

Что заменило Visual FoxPro?

Поддерживается ли еще Visual FoxPro?

AT(), ATC(), RAT(), $ | Руководство хакера по Visual FoxPro

hackfox.github.io › section4

Непочтительный взгляд на то, как на самом деле работает Visual FoxPro. Сообщает вам внутреннюю информацию о каждой команде, функции, свойстве, событии и методе Visual FoxPro.

[PDF] VFP: программа функций дисперсии

cran.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *