Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Char в С++ и Delphi 
:(
    Опции темы
L0GA4
Дата 3.3.2006, 02:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 25
Регистрация: 22.6.2005

Репутация: нет
Всего: нет



в си char это вроде 1 байт, что-то вроде массива символов... и на char в Delphi совершенно непохоже.
в си легко проходит следующий код:

Код

void _ch(char sm)
{.. 
 int w = _param.param[sm - '!'].Width;
..}


Как это в Делфи преобразовать ? (я про [sm - '!'] ) неужели придется записывать "!" только как 33?? в анси(ацки?) кодировке??
PM MAIL   Вверх
maxim1000
Дата 3.3.2006, 02:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник
Сообщений: 3334
Регистрация: 11.1.2003
Где: Киев

Репутация: 4
Всего: 110



Цитата(L0GA4 @ 3.3.2006, 01:04 Найти цитируемый пост)
в си char это вроде 1 байт, что-то вроде массива символов...

именно 1 байт, никаких массивов...

в Delphi разделены понятия "символ" и целое, представленное в байте
если память не изменяет, то можно написать нечто вроде такого: ord('!') и будет код !...


--------------------
qqq
PM WWW   Вверх
mes
Дата 3.3.2006, 03:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 1
Всего: 250



Цитата(L0GA4 @ 3.3.2006, 02:04 Найти цитируемый пост)
Как это в Делфи преобразовать ? (я про [sm - '!'] ) неужели придется записывать "!" только как 33?? в анси(ацки?) кодировке??


Делфи требует явное преобразование типов перед операцией.
Плюс тип CHAR не поддерживает математических операций.

Например:
Код

 var sm,ch:char;
...
ch  :=  char (byte(sm)-byte('!'));



Надеюсь, что это поможет smile



--------------------
PM MAIL WWW   Вверх
remax
Дата 3.3.2006, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент
**


Профиль
Группа: Участник Клуба
Сообщений: 686
Регистрация: 7.4.2002
Где: Украина, Харьков

Репутация: 1
Всего: 5



Можно не использовать функции явного преобразования типов. Альтернатива - разделение одной обасти памяти между разными переменными, например:
Код

var
  c:char;
  b:byte absolute c;
  i:integer;
begin
  c:='!';
  i:=5+b;
end;



--------------------
Как бы ты не старался быть хорошим и правильным человеком с принципами и уважительным отношением к другим, всегда найдется кто-то, кто бросит в тебя какашку
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1000 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.