пятница, 20 июля 2012 г.

Если бы на медицинских форумах общались так же, как везде


Новичок: Ребят, у меня проблема — пришел пациент, один глаз работает, другой нет — что делать? Срочно!!
Хирург (старожил): А-а-а-а!! Один глаз не работает, умора! (*ржет*)
Скальпель (старожил): Блин, ламеры достали!
Админ (администратор): Новичок, читайте правила форума, пользуйтесь поиском. Первое предупреждение.
Доктор_Лектор (завсегдатай): Да ладно вам, помогите ему. Не видите — у человека горе.
Гость1: Новичок, а чего ты хочешь-то? Формулируй вопрос правильно.
Новичок: Гость1, я хочу чтобы оба галза видели. Можешь подсказать как это сделать?
Гость1: А-а-а, чтобы оба видели — не знаю тогда. Я по иглоукалыванию специализируюсь.
Новичок: Админ, я пользовался поиском, но ничего не нашел. Помогите кто-нибудь, пациент на столе лежит, я ему уже легкое вскрыл — не помогает!!
Хирург (старожил): А-а-а!! Легкое вскрыл, я щас уссусь! (*ржет покатом*)
Гость2: Новичок, глазной нерв проверял?
Медбрат (опытный): Новичек, какой глаз не работает — левый или правый?
Админ (администратор): В правилах форума написано, что здесь запрещено задавать вопросы про симметричные органы. Кроме того, по каким словам ты искал? По слову «глаз»? А надо было — по «бинокуларус окулярус». Вот — [набор ссылок] почитай про то, как надо полоьзоваться поиском на форумах.
Новичок: Гость2, а где искать глазной нерв? Поменял глаза местами, теперь оба не работают (( Срочно — что делать, скоро наркоз заканчивается.
Гость3: А пациент какой расы — негроид или монголоид?
Скальпель (старожил): Гость3, а какая разница?
Гость3: Ты хочешь сказать, что между негроидом и монголоидом нет разницы? Еще Новичка ламером называл =)
Доктор_Лектор (завсегдатай): Между негроидом и монголоидом есть разница, факт.
Новичок: Как узнать расу?
Скальпель (старожил): Спросить у пациента
Новичок: Пациент без сознания. Может в паспорте записано?
Скальпель (старожил): Гость3, разница есть, но какая разница в конкретном нашем случае??
Гость3: Скальпель, очевидная. У негроидов глаза большие и навыкате, а у монголоидов щелки глаз узкие — может у пациента просто глазные щели заужены, их надрезать надо.
Новичок: Спасибо, Гость3! Надрезал веки — легче стало вынимать глазные яблоки. Переставил еще раз, не рабоатают ПС: на всякий случай надрезал ноздри и анус.
Новичок: Эй, есть кто-нибудь?
Новичок: Что делать-то?
Новичок: Все, тема закрыта, я его к окулисту направил.
Скальпель (старожил):НОВИЧЕК, А ТЫ ЧТО — НЕ ОКУЛИСТ??? =8-0
Новичок: Неа. Гинеколог.
Админ (администратор): Новичек, второе предупреждение. Читай правила. Здесь форум окулистов. Еще одно предупреждение и — бан.
Хирург (старожил): А-а-а-а!! Гинеколог!! Все, сливайте воду, я уссался! (*ржет*)

среда, 4 июля 2012 г.

Delphi: сохраняем файлы в UTF-8 без BOM

Взялся вновь за программирование на Delphi. Установив Delphi XE2, я принялся искать способ писать файлы с кодировкой UTF-8.

Самый простой способ писать текст из TStrings в файл в кодировке UTF-8:

var MyStrings: TStrings;
...
MyStrings.SaveToFile('C:\MyUtf8File.txt', TEncoding.UTF8);

Однако такое использование этой функции приводит к сохранению текста с отметкой порядка байтов (Byte-Order Mark — BOM). Это может привести к несовместимости с некоторыми другими программами, например, при использовании в веб-разработке.

К счастью, не пришлось изобретать велосипед. Проведя исследования функции TStrings.SaveToFile, я обнаружил, что существует такое свойство, как TStrings.WriteBOM! Устанавливаем его в False и всё! В итоге получаем код:

MyStrings.WriteBOM := False;

MyStrings.SaveToFile('C:\MyUtf8File.txt', TEncoding.UTF8);


P.S.: Проверял только Delphi XE2 и не знаю с какой версии это работает.