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

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

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

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

Сообщение Osmiy » 07.03.2017 12:32:28

Каждый русский символ в Format считается за два символа. Что нарушает форматирование. Можно конечно в ран-тайме пересчитывать или самому формировать пробелы. Но есть ли возможность задействовать стандартные средства?
Osmiy
новенький
 
Сообщения: 36
Зарегистрирован: 07.05.2016 21:18:39

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

Сообщение pupsik » 07.03.2017 13:01:49

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


как бы нормально выводит. Или вы имеете ввиду что то иное?
pupsik
энтузиаст
 
Сообщения: 1154
Зарегистрирован: 20.08.2014 16:20:13

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

Сообщение Лекс Айрин » 07.03.2017 13:06:37

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


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

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

Сообщение Osmiy » 07.03.2017 13:10:50

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

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

Да, типа того.
Osmiy
новенький
 
Сообщения: 36
Зарегистрирован: 07.05.2016 21:18:39

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

Сообщение pupsik » 07.03.2017 14:32:19

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

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

Сообщение Osmiy » 07.03.2017 15:17:53

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


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

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

Вопрос закрыт.
Osmiy
новенький
 
Сообщения: 36
Зарегистрирован: 07.05.2016 21:18:39

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

Сообщение Deimos » 07.03.2017 18:16:18

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

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


Оно-то да )

Очень похоже на проблему вывода в лазрепорт UTF8 и русских символов - там это реализовано, действительно, коряво... Я как-то решил и где-то, даже писал (на этом форуме), но точно помню, что правил исходный код Лазаря (впрочем - или FPC) )))
Deimos
постоялец
 
Сообщения: 169
Зарегистрирован: 17.01.2010 00:31:30

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

Сообщение Osmiy » 07.03.2017 18:27:06

А разработчики в курсе говнокода, или у них это не баг, а фича?
Osmiy
новенький
 
Сообщения: 36
Зарегистрирован: 07.05.2016 21:18:39

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

Сообщение zub » 07.03.2017 19:25:12

Osmiy
А вы в ворде форматирование тоже пробелами делаете?
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение Osmiy » 07.03.2017 19:31:51

Я вордом 7 лет не пользуюсь, как универ закончил. Только причем тут ворд...
Osmiy
новенький
 
Сообщения: 36
Зарегистрирован: 07.05.2016 21:18:39

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

Сообщение Deimos » 07.03.2017 19:39:42

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


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

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

http://freepascal.ru/forum/viewtopic.php?f=5&t=9580
Deimos
постоялец
 
Сообщения: 169
Зарегистрирован: 17.01.2010 00:31:30

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

Сообщение Osmiy » 07.03.2017 19:55:02

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

Во-первых, козлы...
Во-вторых, а разве это проблема только русского языка, а не всех языков отличных от английского?
Osmiy
новенький
 
Сообщения: 36
Зарегистрирован: 07.05.2016 21:18:39

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

Сообщение Deimos » 07.03.2017 20:00:28

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

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

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

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

З.Ы. В моем случае проблема была актуальной не в винде. Только под никсами
Deimos
постоялец
 
Сообщения: 169
Зарегистрирован: 17.01.2010 00:31:30

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

Сообщение zub » 07.03.2017 20:08:43

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

Ворд тут действительно не причем. а вот форматирование пробелами - причем
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

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

Сообщение Лекс Айрин » 07.03.2017 21:02:52

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


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


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Рейтинг@Mail.ru