1296 / 469 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
||||||
1 | ||||||
Проверка на достижение конца файла не рао30.03.2015, 20:57. Показов 2525. Ответов 17
Метки нет (Все метки)
P.S. Насчет того что написано через одно место не надо пожалуйста, сама знаю
0
|
30.03.2015, 20:57 | |
Ответы с готовыми решениями:
17
Определить достижение конца экрана Проверка на достижение локации на карте Проверка наличия маркера конца файла Проверка конца файла(формат .cvs (таблица MS Excel) |
1296 / 469 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
|
30.03.2015, 21:06 [ТС] | 3 |
В файле числа через пробел
0
|
1296 / 469 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
|
30.03.2015, 21:13 [ТС] | 5 |
MS VC++ 2010
Собственно, файл создается программой, забыла уточнить Описание этого и подобных файлов, которые создаются программой: Кликните здесь для просмотра всего текста
. Индексные файлы можно организовать просто. Например, в базе есть три поля имя, группа, возраст и нужно упорядочивать по имени или по группе. Предположим, что каждая запись занимает по 256 байт в файле.
Сидоров ВБМО31 21 Иванов ВБМО32 20 Петров ВБМО31 19 Смещение до начала первой записи 0, смещение до начала второй записи 256, смещение до третьей записи 512. Тогда создаются два файла, хранящие целые значения – смещения в файле с данными до записей, упорядоченных по соответствующему полю: Файл index1. idx (упорядочение по первому полю): 256 512 0 т.к. по алфавиту вначале следует «Иванов», затем «Петров», затем «Сидоров». Файл index2. idx (упорядочение по второму полю): 0 512 256 т.к. по алфавиту вначале следует «ВБМО31», затем «ВБМО31», затем «ВБМО32». Тогда, если надо вывести содержимое базы в виде, отсортированном по первому полю, открывается файл index1. idx читается целое число – смещение до начала записи, потом указатель текущей позиции в файле с данными смещается на эту величину, читается запись, выводится на экран и т.д. Аа с бинарными я вообще еще не работала... Имеет большое значение?
0
|
1296 / 469 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
|
30.03.2015, 21:14 [ТС] | 7 |
Нет
При добавлении чисел в файл добавляется просто число и пробел
0
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
||||||
30.03.2015, 21:20 | 8 | |||||
Лучше файл выложите, с которым ошибка возникает.
Добавлено через 2 минуты Если вот так:
Зачем так проверку конца файла делаете? Так нужно, или ради эксперимента?
1
|
1296 / 469 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
|
30.03.2015, 21:24 [ТС] | 9 |
Ошибка возникает при изменении файла. То есть при добавлении очередного числа в нужное место. В файле при этом лежит только "0 ", т.е. 0 и пробел. Во время выполнения цикла этих нулей становится, естественно, бесконечное множество.
C idx.clear(); все равно виснет
0
|
1296 / 469 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
|
30.03.2015, 21:25 [ТС] | 10 |
На последнем скрине видно что индексный файл первого столбца пытается обновляться, и на этом благополучно виснет. А с первой строкой все было норм
0
|
1296 / 469 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
||||||
30.03.2015, 21:44 [ТС] | 12 | |||||
При пошаговом выполнении у меня программа зацикливалась именно тут. Хотя на всякий случай сейчас еще раз прокручу.
Эксперимент. Ну, неудачный... Но хоть поработала наконец с этими seek-ами и tell-ами Поменяла на
Добавлено через 42 секунды Хотя мне все еще непонятно почему это не сработало
0
|
1296 / 469 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
|
30.03.2015, 21:53 [ТС] | 14 |
О, прикольно, спасибо
0
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
|
30.03.2015, 22:10 | 15 |
Попробовал сейчас в работе вашу программу. По-моему, там косяков много. Есть такое правило: всегда проверять файл на открытие для чтения. У вас в программе, нет ни одной такой проверки. Советую этим правилом не пренебрегать.
0
|
1296 / 469 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
|
30.03.2015, 22:12 [ТС] | 16 |
Ну, косяков очевидно много, я ж таки только студент
Да, насчет проверок в курсе, но программы пока настолько несерьезные, что забываю привыкать это таки делать (хотя одна проверка таки есть, в 92-й строке)
0
|
1296 / 469 / 151
Регистрация: 24.08.2011
Сообщений: 2,249
|
|
30.03.2015, 22:41 [ТС] | 18 |
аа... нуу... да)) нет))
0
|
30.03.2015, 22:41 | |
30.03.2015, 22:41 | |
Помогаю со студенческими работами здесь
18
Функция, определяющая достижение начала файла: есть ли такая? Проверка конца строки Проверка конца текста Неравенство Рао - Крамера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |