Страница 1 из 1

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

СообщениеДобавлено: 07.03.2017 12:32:28
Osmiy
Каждый русский символ в Format считается за два символа. Что нарушает форматирование. Можно конечно в ран-тайме пересчитывать или самому формировать пробелы. Но есть ли возможность задействовать стандартные средства?

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

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


как бы нормально выводит. Или вы имеете ввиду что то иное?

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

СообщениеДобавлено: 07.03.2017 13:06:37
Лекс Айрин
pupsik писал(а): Или вы имеете ввиду что то иное?


Судя по всему, речь о псевдотабличном выводе.

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

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

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

Да, типа того.

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

СообщениеДобавлено: 07.03.2017 14:32:19
pupsik
ansi-символы
в лазаре? Он, вроде как, ютф8.
Судя по всему...
вот кто его знает по чему судить. Написано: не работает. Что делал - догадайся. Что брал - догадайся. Куда вывод - догадайся.
Зато: не работает.

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

СообщениеДобавлено: 07.03.2017 15:17:53
Osmiy
pupsik писал(а):в лазаре? Он, вроде как, ютф8.


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

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

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

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

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

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


Оно-то да )

Очень похоже на проблему вывода в лазрепорт UTF8 и русских символов - там это реализовано, действительно, коряво... Я как-то решил и где-то, даже писал (на этом форуме), но точно помню, что правил исходный код Лазаря (впрочем - или FPC) )))

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

СообщениеДобавлено: 07.03.2017 18:27:06
Osmiy
А разработчики в курсе говнокода, или у них это не баг, а фича?

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

СообщениеДобавлено: 07.03.2017 19:25:12
zub
Osmiy
А вы в ворде форматирование тоже пробелами делаете?

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

СообщениеДобавлено: 07.03.2017 19:31:51
Osmiy
Я вордом 7 лет не пользуюсь, как универ закончил. Только причем тут ворд...

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

СообщениеДобавлено: 07.03.2017 19:39:42
Deimos
Osmiy писал(а):А разработчики в курсе говнокода, или у них это не баг, а фича?


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

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

http://freepascal.ru/forum/viewtopic.php?f=5&t=9580

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

СообщениеДобавлено: 07.03.2017 19:55:02
Osmiy
Deimos писал(а):Ответ разработчиков был краток и емок )) Нам русский язык не нужен...

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

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

СообщениеДобавлено: 07.03.2017 20:00:28
Deimos
Osmiy писал(а):Во-первых, козлы...

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

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

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

З.Ы. В моем случае проблема была актуальной не в винде. Только под никсами

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

СообщениеДобавлено: 07.03.2017 20:08:43
zub
Osmiy писал(а):Только причем тут ворд...

Ворд тут действительно не причем. а вот форматирование пробелами - причем

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

СообщениеДобавлено: 07.03.2017 21:02:52
Лекс Айрин
Deimos писал(а):Ответ разработчиков был краток и емок )) Нам русский язык не нужен...


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