![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| tatan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 31.10.2007 Репутация: нет Всего: 1 |
baldina
tnx, но не сейчас сейчас уже время для виски |
|||
|
||||
| tatan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 31.10.2007 Репутация: нет Всего: 1 |
baldina, gss ругается на строку
ofstream::pos_type size (0, filesize); говорит 'no matching function for call to `std::fpos<mbstate_t>::fpos(int, long long int&)' и на строку cout << "File size is " << size.seekpos ()/(1024.*1024*1024) << "Gb\n"; 'class std::streampos' has no member named 'seekpos' |
|||
|
||||
| baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
По стандарту класс fpos is implementation-defined. И реализация в VC и gcc как видно различается.
Значит не удастся единообразно сделать. Увы. Видимо имеет смысл обернуть работу с fpos в класс, реализация которого разная для разных типов компиляторов. Добавлено через 11 минут и 5 секунд Т.е. предлагается создать класс примерно такого вида (реализация для gcc и VC будет разная)
тогда те проблемные строчки могут выглядеть так:
|
||||
|
|||||
| tatan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 31.10.2007 Репутация: нет Всего: 1 |
Пока знаний маловато
Вообщем пока сделал так
Не знаю, насколько такой подход правильный |
|||
|
||||
| baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
Нормальный подход.
А мое предложение заключалось в том, что если таких мест много, не плодить дефайны по коду, а собрать только в одном месте. Связность системы надо уменьшать. Т.е.
тогда можно писать
|
||||
|
|||||
| tatan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 31.10.2007 Репутация: нет Всего: 1 |
спасибо
завтра попробую |
|||
|
||||
| hkklr |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 17.8.2007 Репутация: нет Всего: нет |
Если вы про Visual Studio, то там вобще в стандартной библиотеке всё криво написано. Да и вообще, зачем нужны эти объектно-ориентированные потоки, тормозные они...
|
|||
|
||||
| archimed7592 |
|
|||
![]() Архимед ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2531 Регистрация: 12.6.2004 Где: Moscow Репутация: 58 Всего: 93 |
hkklr, конечно, давайте лучше вернёмся в каменный век, ради выйгрыша в пару тактов.
-------------------- If you have an apple and I have an apple and we exchange apples then you and I will still each have one apple. But if you have an idea and I have an idea and we exchange these ideas, then each of us will have two ideas. © George Bernard Shaw |
|||
|
||||
| tatan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 31.10.2007 Репутация: нет Всего: 1 |
К сожалению, даже благодаря любезному baldina заставить работать VC с большим файлом не удалось, наверное я что-то недопонял
Если кому-то будет интересно выкладываю небольшие исходники. gcc с этим работает правильно работает вот блин Присоединённый файл ( Кол-во скачиваний: 7 )
adb.zip 13,64 Kb |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
Про криво сами додумались али кто подсказал? Не поленитесь, посмотрите копирайты включаемых файлов. Заодно интересно было б услышать, что именно там криво. Sorry за |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
Запускаю исходники, получаю такой результат:
Это верно или как? Файло указанного размера создалося... Компилятор - VC 2003 Добавлено через 12 минут и 12 секунд Глядя внутрь исходников, делаю осторожный вывод, что по крайней мере в отношении pos_type все правильно. |
|||
|
||||
| tatan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 31.10.2007 Репутация: нет Всего: 1 |
У меня MS VS 9
выдает File size: 0 Сам файл 4096 Mb а должен быть - миллион страниц по 8192Kb Dev-C++ с gсс говорит все правильно - 7813Mb К тому же в main есть вызов, проверяющий логику программы - f.SetPageFree(999997), здесь он отрабатывает правильно - помечает в файле страницу с таким порядковым номером свободной Непонятно, почему у нас разные результаты прогонов с VC Добавлено через 3 минуты и 2 секунды "Глядя внутрь исходников, делаю осторожный вывод, что по крайней мере в отношении pos_type все правильно. " Ну значит Ваше время потрачено не зря Собственно я без изменений Ваш код и засунул Может правда использовал его не так, я там с бубном прыгал в простом файле adbfile.cpp |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
Ну у меня 7гиг свободных просто нету, чуть больше 3х сейчас. И файл создался примерно такой.
MS VS 9 - Это что, 2008? Здесь нету, а завтра на работе могу и под него попробовать. И вряд ли оно стухло в более поздней. Стоит поглядеть, действительно ли под VC компилируется то что надо. Отладчик для того придумали. Может, конечно, моё заклинание только на моём компе работает Добавлено @ 01:46 Ваш бубен видел, вы там еще забыли return в случае если файл не открыт... Добавлено @ 01:48 В утешение: поглядите в boost, как они бьют в бубен для каждого компилятора (и даже версии) Это сообщение отредактировал(а) baldina - 10.12.2007, 01:48 |
|||
|
||||
| tatan |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 31.10.2007 Репутация: нет Всего: 1 |
Да, MS Visual C++ 2008 Express Edition
До 4Gb работает нормально и в VC, можно убедиться поставив в for место 1000000 400000, и поменяв в f.SetPageFreу аргумент на например 399997 boost ни разу не видел, рановато думаю еще, но утешаюсь Если не очень трудно, попробуйте plz про return наверное не забыл я буду думать еще про систему обработки ошибок и исключений, пока просто не обращаю внимания |
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 32 Всего: 101 |
Ладно, утром поглядим
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |