Format и русские буквы

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Ответить
Osmiy
новенький
Сообщения: 46
Зарегистрирован: 07.05.2016 20:18:39

Format и русские буквы

Сообщение Osmiy »

Каждый русский символ в Format считается за два символа. Что нарушает форматирование. Можно конечно в ран-тайме пересчитывать или самому формировать пробелы. Но есть ли возможность задействовать стандартные средства?
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

В смысле? Такой код:

Код: Выделить всё

const
  frmt = 'Hello. Твоё имя: %s. Продолжим? %s. Сейчас: %s';
begin
  Form1.Caption := Format(frmt, ['Антошка', 'Нет?', FormatDateTime('hh:nn', Now)]) ;


как бы нормально выводит. Или вы имеете ввиду что то иное?
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

pupsik писал(а): Или вы имеете ввиду что то иное?


Судя по всему, речь о псевдотабличном выводе.
Osmiy
новенький
Сообщения: 46
Зарегистрирован: 07.05.2016 20:18:39

Сообщение Osmiy »

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

Добавлено спустя 20 секунд:
Лекс Айрин писал(а):Судя по всему, речь о псевдотабличном выводе.

Да, типа того.
pupsik
энтузиаст
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13
Контактная информация:

Сообщение pupsik »

ansi-символы
в лазаре? Он, вроде как, ютф8.
Судя по всему...
вот кто его знает по чему судить. Написано: не работает. Что делал - догадайся. Что брал - догадайся. Куда вывод - догадайся.
Зато: не работает.
Osmiy
новенький
Сообщения: 46
Зарегистрирован: 07.05.2016 20:18:39

Сообщение Osmiy »

pupsik писал(а):в лазаре? Он, вроде как, ютф8.


Я же про символы, а не кодировку строк.

Добавлено спустя 44 минуты 58 секунд:
Написал доп. функции, которые добавляют слева/справа нужное число пробелов с учетом корректного количества печатаемых символов в строке.

Вопрос закрыт.
Deimos
постоялец
Сообщения: 174
Зарегистрирован: 16.01.2010 23:31:30

Сообщение Deimos »

Osmiy писал(а):Написал доп. функции, которые добавляют слева/справа нужное число пробелов с учетом корректного количества печатаемых символов в строке.

Вопрос закрыт.


Оно-то да )

Очень похоже на проблему вывода в лазрепорт UTF8 и русских символов - там это реализовано, действительно, коряво... Я как-то решил и где-то, даже писал (на этом форуме), но точно помню, что правил исходный код Лазаря (впрочем - или FPC) )))
Osmiy
новенький
Сообщения: 46
Зарегистрирован: 07.05.2016 20:18:39

Сообщение Osmiy »

А разработчики в курсе говнокода, или у них это не баг, а фича?
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Osmiy
А вы в ворде форматирование тоже пробелами делаете?
Osmiy
новенький
Сообщения: 46
Зарегистрирован: 07.05.2016 20:18:39

Сообщение Osmiy »

Я вордом 7 лет не пользуюсь, как универ закончил. Только причем тут ворд...
Deimos
постоялец
Сообщения: 174
Зарегистрирован: 16.01.2010 23:31:30

Сообщение Deimos »

Osmiy писал(а):А разработчики в курсе говнокода, или у них это не баг, а фича?


Ответ разработчиков был краток и емок )) Нам русский язык не нужен... Но я и не настаивал - не умею я писать багрепорты...

говнокод
Не согласен. Они, на "эмоциях" и личном рвении пишут ОПЕНСОРС продукт... Кто из нас/вас не делал "коряво", но работает, с приставкой "будет время - исправлю"? (особенно если проект БОЛЬШОЙ и должен работать ВЧЕРА) На то он и открыт - пишите исправления и вносите предложения )))

http://freepascal.ru/forum/viewtopic.php?f=5&t=9580
Osmiy
новенький
Сообщения: 46
Зарегистрирован: 07.05.2016 20:18:39

Сообщение Osmiy »

Deimos писал(а):Ответ разработчиков был краток и емок )) Нам русский язык не нужен...

Во-первых, козлы...
Во-вторых, а разве это проблема только русского языка, а не всех языков отличных от английского?
Deimos
постоялец
Сообщения: 174
Зарегистрирован: 16.01.2010 23:31:30

Сообщение Deimos »

Osmiy писал(а):Во-первых, козлы...

не... спасибо ребятам, за их работу...

Osmiy писал(а):Во-вторых, а разве это проблема только русского языка, а не всех языков отличных от английского?

На других не проверял, но думаю, что проблема актуальна для любого, не латинского, шрифта.

З.Ы. В моем случае проблема была актуальной не в винде. Только под никсами
zub
долгожитель
Сообщения: 2890
Зарегистрирован: 14.11.2005 22:51:26
Контактная информация:

Сообщение zub »

Osmiy писал(а):Только причем тут ворд...

Ворд тут действительно не причем. а вот форматирование пробелами - причем
Аватара пользователя
Лекс Айрин
долгожитель
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград
Контактная информация:

Сообщение Лекс Айрин »

Deimos писал(а):Ответ разработчиков был краток и емок )) Нам русский язык не нужен...


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