Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 2 374

/ вопрос открыт /

Здравствуйте, уважаемые эксперты!
Перешел на Delphi 2009 появилась ошибка:
Implicit string cast with potential data loss from 'string' to 'AnsiString'
Как мне преобразовать AnsiString в String ??
Знаю что появился новый класс TEncoding. Если эту операцию можно сделать с помощью этого класс приведите пример.

Zlodey Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Zlodey (статус: Посетитель)
Вопрос отправлен: 1 февраля 2009, 18:59
Состояние вопроса: открыт, ответов: 0.


Мини-форум вопроса

Всего сообщений: 7; последнее сообщение — 8 февраля 2009, 13:33; участников в обсуждении: 4.
Паровоз

Паровоз (статус: 10-ый класс), 2 февраля 2009, 23:12 [#1]:

"Implicit string cast with potential data loss from 'string' to 'AnsiString'"
"Как мне преобразовать AnsiString в String ??"

Так все же что Вам надо преобразовать 'string' to 'AnsiString' или AnsiString в String?
Dron

Dron (статус: Студент), 3 февраля 2009, 00:12 [#2]:

Всё верно компилятор говорит. String - это WideString, а AnsiString "меньше" WideString. Поэтому такое преобразование может потерять некоторые символы.
Str: String;
PAnsiChar(PChar(Str));
С уважением.
Zlodey

Zlodey (статус: Посетитель), 5 февраля 2009, 20:31 [#3]:

У меня приходит из com порта ответ в Ansi кодировке мне нужно его перевести в unicode. что бы не переделывать всю программу.

Можно общаться с модемом AT командами в кодировке unicode ?
Вадим К

Вадим К (статус: Академик), 5 февраля 2009, 23:38 [#4]:

Врядли, модемы часто общаются вообще в своей кодировке.
Галочка "подтверждения прочтения" - вселенское зло.
Zlodey

Zlodey (статус: Посетитель), 6 февраля 2009, 19:11 [#5]:

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

Паровоз (статус: 10-ый класс), 8 февраля 2009, 11:35 [#6]:

Компилятор выдает сообщение не на преобразование AnsiString в string, а обратно. Dron же все растолковал. String состоит из двухбайтовых символов, а AnsiString из однобайтовых. Поэтому при таком преобразовании возможна потеря данных, о чем компилятор и должен предупредить. А так, вообще, эти типы совместимы по присваиванию. Можете почитать об этом в
http://dn.codegear.com/ru/article/38582
Zlodey

Zlodey (статус: Посетитель), 8 февраля 2009, 13:33 [#7]:

За ссылку спасибо!

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:28
Выполнено за 0.02 сек.