![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| vood |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 23.2.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
доброго времени суток!
Столкнулся я с такой проблемой : не получается весь файл считать ! Подскажите более удобное решение(мое решение ниже
-------------------- Вы все еще курите ? Тогда мы идем к вам |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 16 Всего: 98 |
т.е. нужно while (ReadFile(...)) -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| Coala |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 70 Регистрация: 4.5.2006 Где: Москва Репутация: нет Всего: 0 |
А кто мешает определить размер файла, создать буфер соответствующего размера и за один заход считать весь файл в буфер?
ЗЫ - что с файлом-то делать надо? |
|||
|
||||
| Kuvaldis |
|
|||
![]() механик-вредитель ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1189 Регистрация: 16.6.2006 Где: Минск Репутация: 11 Всего: 61 |
Coala,
Да, интересно будет считывать файл размером метров хотя бы в 600 Должен быть РАЗУМНЫЙ компромис между скоростью (количество операций чтения) и памятью (размером буфера) -------------------- Помни - когда ты спишь, враг не дремлет Спи чаще и дольше, изматывай врага бессоницей |
|||
|
||||
| vood |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 23.2.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
_hunter, у меня компилятор ругается если ставить так
-------------------- Вы все еще курите ? Тогда мы идем к вам |
|||
|
||||
| SergeCpp |
|
|||
![]() ![]() ![]() Профиль Группа: Участник Сообщений: 955 Регистрация: 8.8.2005 Где: At Home Репутация: 15 Всего: 124 |
Точку с запятой уберите в конце строки, однако...
![]() while( ReadFile( hFile, str, 1024, &dwBytesRead, NULL ) ); // вот эту вот |
|||
|
||||
| vood |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 23.2.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Это опечатка. Но экзешник после изменения
на
очень глючит Это сообщение отредактировал(а) vood - 27.10.2006, 11:42 -------------------- Вы все еще курите ? Тогда мы идем к вам |
||||
|
|||||
| sergejzr |
|
||||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Ну вроде ведь задача так стоит: "считать весь файл сразу". Значит наверное автор проверяет длину перед зачитыванием Вот кросплатформенная функция определения длины файла
Аот тебе простой, кросплатформенный пример копирования файла. Не раз ещё пригодится Если за размер буффера возьмёшь длину файла, то он считается "за раз";
|
||||||
|
|||||||
| vood |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 23.2.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
sergejzr, длину файла я определяю функцией _findfirst
за функцию копирования спасибо, но я пытаюсь считать весь файл( и за один присест у меня это не получится) -------------------- Вы все еще курите ? Тогда мы идем к вам |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Зачем её каждый раз определять, когда она в таблице уже есть? Почему? Файл большой? |
|||
|
||||
| vood |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 23.2.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
это просто долго) файлов нужно много обрабатывать
определять нужно тк у себя модуля sys/stat.h я не нашел а findfirst мне удобней Добавлено @ 12:21 но мой вопрос еще остается в силе(см 1 пост) -------------------- Вы все еще курите ? Тогда мы идем к вам |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 19 Всего: 360 |
Тогда я не понимаю смысл вопроса и проблемы
Разве ЭТО не считает весь файл?
ПС: sys/stat.h - стандартная вещь есть в любом компиляторском наборе. Что у тебя за компилер? Хотя конечно, бегай по файлу, если есть желание. |
|||
|
||||
| vood |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 23.2.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
sergejzr, понимаете, меня сам метод Ваш не устраиваетю. Файлы надо обрабатывать по 50-60 кб, экзешник будет запущен не раз, а память у меня на компе всего 512мб. Лично Вам огромное спасибо за участие, но я бы хотел узнать еще и другие мнения.
Это сообщение отредактировал(а) vood - 27.10.2006, 12:29 -------------------- Вы все еще курите ? Тогда мы идем к вам |
|||
|
||||
| jnb |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 29 Регистрация: 4.10.2006 Репутация: нет Всего: 1 |
Попробуй использовать проецируемые в память файлы.
В таком случае сразу получишь указатель на буфер и избавишься от необходимости копирования файлов в память. Почитать можно у Рихтера. |
|||
|
||||
| vood |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 271 Регистрация: 23.2.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Какой такой Рихтер?
-------------------- Вы все еще курите ? Тогда мы идем к вам |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |