![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Сабж. Необходимо проверить наличие файла, а не невозможность его открытия, поскольку отсутствие файла - частный случай невозможности его открытия.
Можно ли обойтись потоками ? |
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
CyraxZ, в голову только приходит обработка ошибок после неуспешного открытиф файла, т.е. чтение потока cerr
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| Daevaorn |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 2155 Регистрация: 29.11.2004 Где: Москва Репутация: 51 Всего: 70 |
||||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
Daevaorn, аргументы?
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Можно и без потоков...
|
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
CyraxZ, как?
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| CyraxZ |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 251 Регистрация: 10.12.2006 Репутация: нет Всего: нет |
Это я спрашиваю, а не отвечаю...
|
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 11 Всего: 50 |
rdstate() возвращает 4, если файл не существует. А вот невозможность считать файл ... Может тогда hardfail будет принимать соотвествующее значение?
|
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Не пинайте - boost::filesystem
|
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
Любитель, почему пинать? +))) я люблю буст =)) недаром он в будущий стандарт войдет =)
Только вот есть товарищи, что вопят на его "тяжелость". Но эти товарищи еще и stl не любят =) --------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Просто в последнее время я часто рекомендую буст::файлсистем. Были несогласные
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Были. И есть
|
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
JackYF, а как ты ответишь по сабжу?
|
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Отвечаю: у меня написана функция проверки сущ. файла как невозможность открытия его для чтения через потоки.
Для моих программ это равнозначные понятия. Если я не могу открыть файл, значит мне(и моим программам) он бесполезен, даже если существует. Вот так вот я пока обхожусь без буста |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Это явно разные вещи. Файл может быть открыт кем-то ещё, файл может не считаться с диска, могут отсутствовать права доступа и многое, многое другое.
В серьёзных, достаточно больших проектах это нельзя лепить в одно. С помощью только стандартной библиотеки нельзя написать серьёзный большой проект - даже в плане функционала. А что лучше (с точки зрения проектирования): апи оси или кроссплатформенное решение (изнутри, конечно, основанное на кондишен-компиляции)? Вопрос риторический. |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
||||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Ладно соглашусь единичные случаи могут быть. Среди миллиона. Переформулируем: невозможно написать типичный коммерческий проект, для большинства заказчиков.
Вообщем-то я говорил про свои большие проекты. Что можно - компилер, скажем. Впрочем, сие на плюсах пишется очень редко, это чаще всего чистый си - там буста и нет, и то используются Flex, YACC и т. д. Если не секрет - что ты имел ввиду? |
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
JackYF, всегда есть исключения из правила, потверждающие его.
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
А при чем тут заказчики? Программисты сами выбирают, что им нужно использовать, а что нет. Насчет единичных случаев несогласен. Ты знаешь один миллион проектов, написанных с использованием буста? Чтобы, говорить, что мой один сравним с миллионом? Что я имел ввиду? OpenTick. |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Э-э, я во-первых сейчас говорил не об использовании буста, а о проектах, ограниченных стандартной библиотекой.
Просто буст для большинства случаев лучшее решение (раз уж необходимо юзать что-то нестандартное). Своё или "левые" обычно (!= всегда) хуже. Я не говорю буст и онли буст. Просто зачастую он объективно лучше прочих вариантов. Добавлено @ 18:42 JackYF, нет возможности просмотреть твою ссылку. Можешь в двух словах - тематика. Это сообщение отредактировал(а) Любитель - 18.12.2006, 15:04 |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
да ну? ? Эти две фразы как-то не состыкуются. Поясни эту строчку. Что ты вкладываешь в этот понятие? Свои классы и функцию все равно пишутся. И никакой boost and STL не помогут в этом случае. Каждый проект имеет свою специфику. А с какими прочими вариантами ты сравнивал? Это сообщение отредактировал(а) JackYF - 14.12.2006, 18:51 |
|||
|
||||
| zabivator |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 171 Регистрация: 7.6.2006 Где: нск Репутация: 1 Всего: 2 |
JackYF, у тебя есть примеры кроссплатформенных библиотек, покрывающих функционал буста?
--------------------
#include <zabivator>int main( int, char * [] ){ while( Zabivator::жив() ) Zabivator::моск()++; return 0;} |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Это не исключение. Это самый обычный проект. Я привел единичный случай. Теперь приведите мне ваш миллион. Добавлено @ 19:00
Нет. Но если мне(или любому программисту) для решения конкретной задачи не нужны решения, подобные тем, что написаны в бусте, то зачем мне что-то покрывать? Логично? |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Так. Для начала две темы:
1. Кроссплатформенные пути 2. Многопоточность Ваши варианты.
Опять невнимательно читаем? Чем хуже другие библиотеки. Во-первых, они часто проектируется не вдухе стандартной библиотеке, которую я искренне ценю. Есть правда интересная вещь - ASL (Adobe Source Libraries), юзающая STL и boost, и пытающаяся их развить. Её недостаток в том, что она (в основном) обречена на отдельное существование, потому возможно, что что-то появляющиеся в ASL через полмесяца будет в бусте несколько в другом виде. Большинство девелоперов отдадут предпочтение последнему. Стандартная библиотека непосредственно не разрабатываются. И сие было бы глупо - надо брать то, что программеры реально используют. Напомню, что с первой версией стандартной библиотеки так и было. В неё были включены негласно стандартные IOStreams, STL, строки и т. д. Конечно, большое влияние оказала STL, многие другие библиотеки были переделаны под STL. Сталь STL стал стилем стандартных плюсов. Этот стиль развили в бусте. В документах комитета и в различных заявлениях можно найти, что буст - основной источник дальнейшего развития стандартной библиотеки плюсов. ASL это не грозит. Наиболее простым методом (это серьёзно) будет просто законтачить какие-то либы ASL в буст. Я не исключаю (хотя ещё и не смотрел), что с GIL так и стало. ЗЫ Огромная просьба к модератором - перенесите это в отдельную тему. Добавлено @ 11:39 Посмотрел - действительно это просто портирование (наглое портирование заменяем adobe на boost) адобовской GIL. |
|||
|
||||
| JackYF |
|
||||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Вот о чем я говорил. Ты говорил "обычно","зачастую" - это я прекрасно понимаю и не спорю. Но потом ты говоришь - "буст - лучшее решение". В этой фразе уже нет ни "обычно", ни "зачастую" - это мнение, не подлежащее обжалованию. Вот это я и оспаривал. Впрочем, я думаю, что мы уже поняли точки зрения друг друга... При этом, правда, каждый остался при своем мнении.
Поддерживаю. |
||||
|
|||||
| Любитель |
|
||||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Признаю свою вину и горько сожалею.
Ага! Последняя фраза некорректна (обман) - а ну эдить. Да. Но, во-первых это не означает что тема исчерпана. Во-вторых, я так и не понял почему ты против буста. И что ты выбираешь вместо него. Повторюсь, стандарта не хватает до фига и больше. |
||||
|
|||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
И-эээххх.... Мне пока стандарта + того, что я сам себе накрапал - хватает. Когда будет не хватать - против буста особо ничего не имею. |
|||
|
||||
| Любитель |
|
|||
|
Программист-романтик ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3645 Регистрация: 21.5.2005 Где: Воронеж Репутация: 24 Всего: 92 |
Нагло, но всё же. Какие твои наиболее серьёзные проекты (на твой взгляд)? Вообще, приходилось писать не для себя? ЗЫ Если что, просьба не обижаться. Добавлено @ 15:54 Млин, почему тему не разделят? С занесением в холивары. Где наши модераторы??? |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Матбиблиотека для работы с целыми и дробными числами большой переменной длины.
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |