![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Файловик |
|
|||
|
Unregistered |
Какаим образом удалить строку из файла? И желательно еще установить смещение при удалении? Чтоб строка не пустовала.
Можно примерчик не большой. Спасибо. |
|||
|
||||
| HELPER |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 63 Регистрация: 18.4.2005 Репутация: -2 Всего: -2 |
Ну короче:
1. Перемещаешь указатель на нужную строку. 2. Проходишь цикл до конца файла, считывая i+1 строку, и записывая ее на i-ю строку. 3. Перемещаешь указатель на последнюю строку. 4. Замещаешь ее пробелами например. ПС: енто самый легкий способ. |
|||
|
||||
| Файловик |
|
|||
|
Unregistered |
А как замещать пробелами? Надо, чтоб пробелов было заведомо больше, чем длина строки файла?
так сойдет? |
|||
|
||||
| Joes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 15.11.2004 Репутация: нет Всего: 7 |
хотя бы \t - символ табуляции... ЛУчше так: находишь последний не пробельный символ строки, после которой было удаление, делаешь \n\t - переход на красную сроку, и заменяешь пробельные символы на непробельные (это если ты будешь замещать все символы удаляемой строки на пробелы)... Но это тоже совсем не оптимальный вариант Это сообщение отредактировал(а) Joes - 8.5.2005, 11:18 |
|||
|
||||
| Файловик |
|
|||
|
Unregistered |
Joes а какой самый оптимальный?
|
|||
|
||||
| Файловик |
|
|||
|
Unregistered |
А че нельзя эту самую последнюю строку удалить полностью, а не пробелами заместить? Как в блокноте выделил и удалил...
|
|||
|
||||
| Joes |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 432 Регистрация: 15.11.2004 Репутация: нет Всего: 7 |
Ну вот этот, например: 1. Открыть файл для чтения и записи. 2. Сохранить содержимое файла после удаляемой строки во временный файл или в буфер(массив символов или байт). 3. Поставить файловый указатель на начало удаляемой строки. 4. Обрезать файл. 5. Записать содержимое временного файла или буфера в исходный файл. 6. Закрыть исходный файл. |
|||
|
||||
| файловик |
|
|||
|
Unregistered |
сенк
|
|||
|
||||
| asgaroth |
|
|||
|
Unregistered |
а как его обрезать |
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 2 Всего: 18 |
1)Скопировать старый файл во временный, пропустив эту строку.
2)Потом переместить временный в исходный. |
|||
|
||||
| Guest |
|
|||
|
Unregistered |
сенк |
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 2 Всего: 18 |
Это значит - "БОООльшой сенк!"?
|
|||
|
||||
| файловик |
|
|||
|
Unregistered |
ну да
|
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |