C++Builder
Начало
Форум
Помощь
Войти
Регистрация
C++Builder
>
Forum
>
FAQ - частозадаваемые вопросы/ответы
>
FAQ, общие вопросы, посвящённые C++Builder
(Модератор:
oxotnik
) >
Как прикладывать файлы к сообщениям
Страниц: [
1
]
Вниз
Печать
Автор
Тема: Как прикладывать файлы к сообщениям (Прочитано 20467 раз)
S0mbre
Глобальный модератор
Сказали спасибо: +1113/-22
Offline
Сообщений: 2137
S0mbre
Как прикладывать файлы к сообщениям
«
:
01 августа 2012, 09:42:08 »
Возможно, эту тему следовало бы сделать более общей, например
"как правильно оформлять посты"
. Но это уже на усмотрение админов - может, в будущем, такую тему можно создать.
Довольно часто к своим постам необходимо что-то прикрепить (проект, картинку и т.п.) - и очень часто это делают
неправильно
Вот несколько практических советов.
1. Прикрепление проекта
Чистите проект до его архивации!
В архивированный проект должны входить только файлы, необходимые для его компиляции (т.е.
файл проекта, исходники, файлы форм, ресурсы
) - никаких бэкапов и временных файлов типа
*.obj, *.map, *.pch, *.tds, *.#00, *.dsk, *.local
и т.п.!
Не надо прикладывать скомпилированный файл!
В большинстве случаев, вы задаете вопрос: почему то или иное не работает, не действует, функция не выполняется и т.д. Поэтому люди будут пытаться воспроизвести вашу ошибку, а для этого необходимо
заново собрать проект
. Уже собранный EXE/DLL ни о чем не говорит. К тому же, бинарный файл может довольно много весить, а
лишние килограммы
нам ни к чему
Если все же надо приложить именно собранный файл
("посмотрите, какой красивый контрол!"
), то либо компилируйте проект
для автономного запуска
(как это делается - говорилось много раз:
dynamic RTL = false, link with runtime packages = false
), либо
прикладывайте все необходимые пакеты (*.bpl)
для динамической линковки. Узнать, какие именно пакеты использует ваш проект, можно при помощи утилиты tdump, входящей в дистрибутив студии / билдера
Хорошо комментируйте код
, особенно те строки, на которые требуется обратить
внимание
, или смысл которых
не сразу очевиден
. Например, хороший тон (IMHO) - комментировать, зачем подключен тот или иной "странный" заголовочный файл, или вложенную обработку исключений, частную специализацию шаблонных функций / классов и т.п. Очень помогает краткое описание классов и функций в их объявлениях. Это все нужно, чтобы
облегчить и ускорить прочтение кода
, а отсюда - быстрое его понимание, а отсюда -
возможная помощь
...
Избегайте хард-кодинга строковых констант
, в особенности,
путей к файлам
. Т.е. если ваш проект содержит строку вроде
Код:
Memo1->Lines->LoadFromFile("D:\\Мои файлы\\Всякая ерунда\\Файлик.txt");
это с
99,99%
-ной вероятностью не будет работать на чужой машине (где данный путь
не существует
). Используйте динамические диалоги, относительные пути (relative paths), файлы в ресурсах приложения и т.д.
Учитывайте (по возможности) различные версии компилятора.
Старайтесь делать ваш код наиболее универсальным. Например, если нет необходимости использовать непременно юникодные строки, используйте более универсальный
AnsiString
или еще лучше -
String
(который преобразуется в AnsiString или UnicodeString в зависимости от компилятора и настроек проекта). Другой пример - использование функционала C++11, который и так-то далеко не весь поддерживается новейшими версиями компилятора, а о старых даже говорить не приходится... Если кратко - по возможности, стремиться к тому, чтобы проект одинаково хорошо компилировался на BCB5 и XE2. Конечно, если это невозможно, следует предупредить о минимальной версии.
2. Прикрепление картинок
Скриншот должен быть максимально эргономичным и понятным.
Не надо прикладывать снимок всего экрана
с малюсеньким окошечком посередине (вашим приложением). А надо приложить только то окно или, если возможно, ту
часть окна или экрана
, которая
непосредственно иллюстрирует вашу мысль
. При это приветствуется использование указующих стрелок, надписей и т.п. - все, что
сделает скриншот более понятным
(загромождать инфографикой тоже не надо!)
Ограничивайте размер изображений
до разумных пределов. Гигантская кнопка с разрешением 1900х1200
так же информативна
, как эта же кнопка с нормальным разрешением (чтобы можно было всю ее рассмотреть).
Используйте хорошее сжатие
. Несмотря на то, что можно прикладывать изображения в разных форматах (
gif, jpg, pdf, png
), лучше использовать gif или jpg для хорошего коэффициента сжатия - но только так, чтобы качество изображения было приемлемым. JPEG с коэффициентом 40, например, скорее всего, будет "размытым" (
оптимально - 75-90
).
3. Прикрепление больших файлов
Большие файлы следует
упаковывать в архив
с хорошим сжатием (как пример,
7z или rar
) и заливать на
файлообменник
, а в пост вставлять
ссылку
. При этом:
Используйте надежный файлообменный сервис.
Это значит, что
скорость бесплатного скачивания
должна быть приемлемой, процедура
получения прямой ссылки
- максимально простой,
время хранения файла
- максимально долгим,
реклама
- минимальной. Лично я предпочитаю
rusfolder и rghost
, но, конечно, могут быть другие предпочтения, лишь бы соблюдались указанные условия. И еще на заметку: многие "раскрученные" хостинги
забанены на рабочем месте
, например, у нас забанены rapidshare, uploadbox и megaupload. Так что это тоже следует учитывать
Самостоятельно продлевайте срок хранения файлов.
Худшее, что может быть, - это
мертвая ссылка
. Поэтому следите за жизнью ваших файлов
без напоминания со стороны пользователей
. Напоминать могут и сами файлообменные сервисы. Например,
rusfolder
отправляет на мыло сообщение о том, что скоро
срок хранения истекает
и предлагает продлить его.
Вот, пожалуй, основное, что касается прикрепления файлов. Админы, дописывайте / изменяйте здесь по мере необходимости.
«
Последнее редактирование: 02 августа 2012, 10:19:56 от S0mbre
»
Записан
Страниц: [
1
]
Вверх
Печать
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Вопросы программирования
-----------------------------
=> Общие вопросы программирования в C++Builder
=> Программирование с FMX
=> Работа с базами данных в C++Builder
=> Windows API
=> Технологии COM/DCOM, ActiveX
=> Аспекты и идеология профессиональной разработки ПО
=> Компьютерное железо и системное администрирование
=> студенческий городок
-----------------------------
Обсуждение материалов на сайте
-----------------------------
=> Обсуждений статей на сайте
=> Обсуждение материалов из файлового архива
=> Компоненты сторонних разработчиков к С++Builder
-----------------------------
Работа сайта и новости
-----------------------------
=> Ищу/предлагаю работу
=> Новости из мира программирования
=> Новости - события календаря
=> Голосования
=> Компьютерный юмор и приколы
=> Работа сайта
=> Флейм
-----------------------------
FAQ - частозадаваемые вопросы/ответы
-----------------------------
=> FAQ, общие вопросы, посвящённые C++Builder
=> FAQ, вопросы по базам данных
=> FAQ, вопросы по компонентам