![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
sergey_baltazavr |
![]()
Сообщение
#1
|
![]() Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
Ребят, подскажите почему падает?
program file_operation_TWO; Сообщение отредактировано: sergey_baltazavr - 8.11.2011 15:04 -------------------- Коперник — знакомая фамилия. Что он сделал?
|
Krjuger |
![]()
Сообщение
#2
|
Профи ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 652 Пол: Мужской Реальное имя: Алексей Репутация: ![]() ![]() ![]() |
Ну и где здесь " Практика продвинутого программирования".
Вопрос. Вторая процедура,где закрытие файла?. Затем,Reset открывает файл и устанавливает указатель в начало файла.В итоге каждый раз ты будет добавляя новую строку затирать первую. Зачем делать Rewrite и следом тут же Reset???(2 процедура) А падает она у тебя в 4 процедуре потому что assign есть,а где Reset?????Я бы на твоем месте нафиг избавился от всех этих процедур. Твои коментарии не соответствуют дейстительности.Циклы я бы все таки использовал на твоем месте либо For либо while, в зависимости от потребностей. |
sergey_baltazavr |
![]()
Сообщение
#3
|
![]() Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
Это лаба такая, подскажи ещё как сделать чтобы нормально данные в файл заносились, т.е. без затирания строчки.
-------------------- Коперник — знакомая фамилия. Что он сделал?
|
IUnknown |
![]()
Сообщение
#4
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
sergey_baltazavr
1. У тебя out_fil не корректно написана, условие в until должно быть другим. Если ты введешь один элемент массива - программа просто вылетит, потому что Ch < n не выполнится никогда (изначально Ch = 0, но внутри цикла она увеличивается, и становится равной 1-це. И n = 1 тоже. И как ты хочешь выйти из цикла? Программа занесет в файл все пустые записи из массива S, и когда Ch станет больше чем 100 - просто вылетит). Если же введешь больше одного элемента - то программа запишет в файл ровно одну структуру, увеличит значение ch, и цикл благополучно завершится, так как (1 < 2) - истина... Возможно, ты просто не разобрался в том, как работает repeat/until? Выполнение этого цикла завершается тогда, когда условие становится истинным, а не как у While (выполнять, пока условие истинное, как только стало ложным - выходить из цикла) Так что, придется записать условие в виде until Ch = N, тогда в файл будет записано ровно столько записей, сколько было введено пользователем 2. С перезаписью файла. Создал файл через Rewrite - сразу, безо всяких Reset-ов пиши в него данные. Записал - закрывай файл обязательно. Только тогда все данные действительно в нем сохранятся. 3. Добавление к существующему файлу: открыл файл, но (перед записью в него) надо еще переместиться в самый конец, чтоб действительно дописывать, а не перезаписывать существующие записи: Reset(F1);. Assign не обязателен. Если где-то в программе имя файла уже было связано с файловой переменной, то остальные Assign-ы можно убрать. |
sergey_baltazavr |
![]()
Сообщение
#5
|
![]() Группа: Пользователи Сообщений: 3 Пол: Мужской Репутация: ![]() ![]() ![]() |
Всем спасибо за решение вопроса
![]() -------------------- Коперник — знакомая фамилия. Что он сделал?
|
![]() ![]() |
![]() |
Текстовая версия | 19.07.2025 18:19 |