|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
27.08.2009, 16:03 | #1 |
Регистрация: 27.08.2009
Сообщений: 8
|
С++. Ошибка при удалении последней строки из файла
Здравствуйте! Помогите пожалуйста.
Есть функция, которая удаляет из файла строку, выбранную пользователем. Работает идеально со всеми строками, кроме последней. При выборе для удаления последней строки, программа вылетает с ошибкой, а в отредактированном файле появляется переход на новую строку в самом конце. Код:
system("PAUSE"); /*GOT MILK?*/
|
27.08.2009, 16:16 | #2 |
Форумчанин
Регистрация: 18.01.2009
Сообщений: 118
|
while(!feof(f)) наверно?
читать, пока НЕ кончится |
27.08.2009, 17:06 | #3 |
Регистрация: 27.08.2009
Сообщений: 8
|
Простите, при написании поста удалила "!".
Как вылетало, так и вылетает, продолжая добавлять переход на следующую строку.
system("PAUSE"); /*GOT MILK?*/
|
27.08.2009, 17:12 | #4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
А где текст ошибки?
p.s. Ябы делал не так. Я бы посимвольно считывал и тут же записывал в новый файл до i-того перевода каретки, потом пропускал запись. пока не перевод каретки или конец файла. Ато ты выделили 100 символов на строку, но не факт что их меньше будет.
I'm learning to live...
|
27.08.2009, 18:17 | #5 |
Регистрация: 27.08.2009
Сообщений: 8
|
После вылета программы открываю файл, там как и нужно - нет удаляемой строчки, т.е. все функции внешне делают всё идеально(за исключением вставки перевода строки). Но программа продолжает вылетать, предлагая стандартное виндуусовское "отправлять отчёт".
Подпись ошибки: AppName: adddel.exe AppVer: 0.0.0.0 ModName: msvcrt.dll ModVer: 7.0.2600.2180 Offset: 000360cb ради интереса вывела на печать переменную i каждого прохода while. Печатает при количестве в 4 строки. i=0; i=1; i=2; i=3; i= т.е. оно лишний раз заходит в цикл, но не доходит до конца (не считает i лишний раз, но начинает выполнять цикл) как избавиться от этого? p.s. можно считывать по строчкам, в строке ТОЧНО менее 100 символов.
system("PAUSE"); /*GOT MILK?*/
|
28.08.2009, 08:31 | #6 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Если никто не против я свои пять коп. вставлю всетки...:
Код:
I'm learning to live...
|
28.08.2009, 10:46 | #7 |
Регистрация: 27.08.2009
Сообщений: 8
|
Спасибо, но это злой рок.) Вроде всё верно,НО теперь оно влетает, если удалить всех. Добавила проверку, вообще сразу Can't open file...
Код:
system("PAUSE"); /*GOT MILK?*/
Последний раз редактировалось _Dis_; 28.08.2009 в 10:49. |
28.08.2009, 11:21 | #8 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
У меня ничего не вылетает ( я про свой пример)
А по поводу пустого файла: Код:
I'm learning to live...
|
28.08.2009, 11:35 | #9 |
Регистрация: 27.08.2009
Сообщений: 8
|
Значит в этой функции ошибки теперь нет. Спасибо большое!
Буду искать ошибку в остальных 500 строках.:wall:
system("PAUSE"); /*GOT MILK?*/
|
28.08.2009, 12:15 | #10 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
I'm learning to live...
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ошибка при удалении символа | Virus191288 | Общие вопросы Delphi | 13 | 15.08.2009 14:50 |
в последней строчке ошибка! почему?? (Pascal) | -=t-r-a-s-h=- | Помощь студентам | 6 | 02.06.2009 17:11 |
Определение номера последней строки выделенного диапазона | НеВа6464 | Microsoft Office Excel | 2 | 17.05.2009 14:36 |
Ошибка при удалении... | JRcoker | Общие вопросы Delphi | 8 | 29.07.2008 22:53 |
Проблемы при удалении файлов | Pavel55 | Общие вопросы Delphi | 7 | 10.01.2008 00:45 |