|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
23.06.2017, 10:50 | #1 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Как вывести строку "старого" типа в компонентах Дельфи "нового" типа?
Здравствуйте!
Вопрос может показаться примитивным, элементарным, много раз решённым и т.п., но прошу, всё же, отнестись с пониманием. До этого всячески пытался обходить эту проблему, но достало и хочу уже понять: как нормально вывести строку вида, которая была в Delphi 7 (если не ошибаюсь, ANSI) в Edit (например), Delphi XE (который работает с Unicode, если, опять же, не ошибаюсь)? Попытки найти это в интернете выводят на тонну самописных функций или недоотвеченные советы воспользоваться различными функциями различных юнитов. Ни одного законченного и простого ответа мне найти не удалось. Неужели Delphi не предусмотрело простой функции конвертации строк старого вида в новый и обратно? Перед созданием темы попробовал воспользоваться StringToWideChar. Код:
StringToWideChar ничего не поменял независимо от того вывожу ли я StrXE или wideChars. Можно ли без лишних заморочек решить эту проблему? |
23.06.2017, 10:57 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
String это и так WideString в XE.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
23.06.2017, 11:00 | #3 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Ну это я тоже догадываюсь, встречал, пока пытался найти решение, но как мне его получить из прежнего String?
После написания темы я попробовал поменять Код:
Код:
|
23.06.2017, 11:04 | #4 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Какого прежнего? Там ж и в Edit1.Text не AnsiString.
А DecodeWord это что?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
23.06.2017, 11:09 | #5 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Ну я ж пояснил
DecodeWord возвращает строку, которая отлично понимается в D7 - прежнем Дельфи, строка прежнего формата, наверное, ANSI, у которого значения кириллицы располагались до 255 номера таблицы символов, а не на 1000+, как в Юникоде. DecodeWord использует Chr, который возвращает символы по прежним номерам. Последний раз редактировалось Ship_1; 23.06.2017 в 11:11. |
23.06.2017, 11:10 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
|
23.06.2017, 11:14 | #7 |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Serge_Bliznykov, DecodeWord использует Chr, который возвращает символы по прежним номерам, где кириллица находится в диапазоне от 100 с чем-то до 255, и возвращает строку соответствующую. Эта строка понимается в D7 (проверял), в функции проблемы нет. Проблема в том, как перевести эту строку в вид, который поймут компоненты Delphi XE.
|
23.06.2017, 11:37 | #8 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
а я Вам ещё раз повторяю - проблема как раз в этой функции. Либо меняйте её код на нормальный, либо обеспечивайте ей на вход то, что она ждёт, а полученный от неё результат преобразуйте в то, что Вам надо. так понятней? я ещё раз повторю, я не понимаю, что делает функция DecodeWord, поэтому нижепредложенный код может оказаться бесполезным, но, если Вы так уперлись и не хотите показывать (и менять) код функции, тогда попробуйте строку сконвертировать предвварительно в Ansi: отсюда Код:
Код:
Последний раз редактировалось Serge_Bliznykov; 23.06.2017 в 11:46. |
|
23.06.2017, 12:07 | #9 | |
Форумчанин
Регистрация: 10.02.2014
Сообщений: 526
|
Цитата:
Непонятно что здесь strLen и cpStr... Chr не меняется на AnsiChar - это же встроенная функция Последний раз редактировалось Ship_1; 23.06.2017 в 12:13. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") | ZIRASS | PHP | 4 | 15.06.2016 14:23 |
Нажатие ссылки типа <a class="button_mediu" href="blabla/44">Сражатmься</a> | Dima170792 | Работа с сетью в Delphi | 1 | 25.01.2014 20:15 |
Как "повесить " передачу данных из формы на событие нажатия кнопки типа "button" ? | vedro-compota | JavaScript, Ajax | 10 | 14.12.2010 21:05 |
Как обойти "преобразование типа из "string" в "float" невозможно" | lexluter1988 | Помощь студентам | 1 | 07.08.2010 12:23 |
Как преобразовать строку типа "яяя ччч" в %D1%D1%D1%20%DE%DE%DE | kkkggg | PHP | 2 | 12.09.2007 13:33 |