![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 07.07.2010
Сообщений: 2
|
![]()
Доброго времени суток!
Столкнулся со странным для меня поведением простого кода: программа считывает строку, затем выводит каждый символ строки и его код. Странность в том, что первый раз выводится не то, что я ожидал(см скриншот). Все последующие строки обрабатывает правильно. Проблема наблюдается только с кириллицей. Для работы пока не горит, но любопытно, из-за чего так происходит Среда RAD Studio XE3 Windows 7 Ult. x64 Код:
![]() Последний раз редактировалось D4N1K; 31.03.2013 в 03:42. |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Это не проблема. Просто ты используешь Юникод для строк.
String замени на AnsiString - должно получить однобайтовые коды.
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 08.04.2012
Сообщений: 3,229
|
![]()
А вот я, честно говоря, не понял.
Что юникод - видно по значениям кодов символов, а вот почему первый проход отличается от остальных? С точки зрения кода первый проход отличается отсутствием Код:
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 07.07.2010
Сообщений: 2
|
![]() Код:
![]() Последний раз редактировалось D4N1K; 31.03.2013 в 14:23. |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
В XE2 кстати тоже самое. Почему хз
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#6 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
![]()
а если первым делом writeln сделать? не важно чего, просто пустую строку...
|
![]() |
![]() |
![]() |
#7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Цитата:
Максимум что тут не так: System.SysUtils. Убрать System
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]() Цитата:
Удаление System.SysUtils целиком и System не помогает
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 31.03.2013 в 16:34. |
|
![]() |
![]() |
![]() |
#9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Значит от локали операционки есть какая-то зависимость... Или с самим Делфи что-то.
У меня код этот не косячит.
I'm learning to live...
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Скорей всего, баг в XE3, у них OEM-кодировка не сразу инициализируется, а после первого ввода-вывода. На writeln они поправили, а на readln, видать забыли. В XE2 и ниже должно работать OK, ибо там надо ручками делать конвертацию из-в OEM.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Объясните принцип работы | danada1 | Помощь студентам | 1 | 27.03.2013 15:20 |
принцип работы SaveDialog | Form_13 | Общие вопросы Delphi | 1 | 20.02.2012 00:24 |
принцип работы ссылки | sbcd | Свободное общение | 0 | 03.06.2011 21:50 |
принцип работы программы | sasha14486 | Общие вопросы C/C++ | 1 | 22.05.2011 12:36 |
Принцип работы WH_KEYBOARD_LL | wwe2012 | Общие вопросы C/C++ | 5 | 01.04.2011 15:46 |