С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/104: Рейтинг темы: голосов - 104, средняя оценка - 4.93
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517

Удаление данных из файла

09.01.2012, 02:21. Показов 20590. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Внезапно понял что не знаю как удалить данные из файла.
C++
1
2
3
4
5
6
7
8
9
int main()
{
    fstream file("file.txt",fstream::write,fstream::read);
    if(!file)
     exit(1);
 
    int temp=0;
    string buf="с++"
    ...
Вот как мне теперь например если в файле попадается слово равное buf удалять его из файла? Только не так чтобы там создавать новый файл, или брать и копировать всё что после слова в позицию до этого слова, а просто удалить слово и всё?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.01.2012, 02:21
Ответы с готовыми решениями:

Удаление данных из файла
Есть программа для работы с файлом. В ней меню, через которое можно посмотреть содержимое файла в таблице, добавить записи в файл, удалить...

Удаление данных из файла
Привет. Задача такая: есть класс Работник, вектор, файл с данными объектов класса; нужно удалить всю инфу об определенном работнике по его...

удаление данных с файла
Привет. Вот код. Я как его не переписывал он то все удаляет, то ничего не изменяет. Я пробовал и в бинарном виде, и с помощью...

10
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
09.01.2012, 04:30
Gepar, Ну насколько я знаю, файлы править на лету вообще дело не очень благодарное... В линуксе можно заюзать sed к примеру...
0
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
09.01.2012, 14:05  [ТС]
ForEveR, а в виндуксе? Или какой тогда подход считается наиболее оптимальным при решении такой задачи ? Неужели мне нужно теперь копировать всё в оп (целиком или по кускам) в переменную/переменные и потом обратно вставлять в файл?
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
09.01.2012, 14:19
Цитата Сообщение от Gepar Посмотреть сообщение
ForEveR, а в виндуксе? Или какой тогда подход считается наиболее оптимальным при решении такой задачи ? Неужели мне нужно теперь копировать всё в оп (целиком или по кускам) в переменную/переменные и потом обратно вставлять в файл?
- где то в глубинах инета встречал то ли SetFileEnd то ли SetFileSize но никогда не компал в этом напрвлении - всегда делал просто:

помещал нужное во временный файл, когда вся инфа была в нём - удалял исходный файл данных,
а затем переименовывал временный файл именем исходного
что-то вроди этого
C++
1
2
3
source.dat >(нужную инфу) source.dat.tmp
remove("source.dat");
rename("source.dat.tmp","source.dat");
2
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
09.01.2012, 23:53  [ТС]
-=ЮрА=-, хм, ну тоже вариант, я до этого искал функции для переименования файла когда-то, но находил что-то сложно winapi'шное, а тут remove да rename ... а с чем они хоть подключаются? Code::blocks компилирует это даже если вообще ничего не подключать, но он также без ничего и printf, exit и т.д понимает вот и интересуюсь. Гугление приводит только к remove из stl.
0
Каратель
Эксперт С++
6610 / 4029 / 401
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
10.01.2012, 00:05
stdio.h/cstdio
http://www.cplusplus.com/refer... io/rename/
http://www.cplusplus.com/refer... io/remove/
2
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
10.01.2012, 00:23
Цитата Сообщение от Gepar Посмотреть сообщение
-=ЮрА=-, хм, ну тоже вариант, я до этого искал функции для переименования файла когда-то, но находил что-то сложно winapi'шное, а тут remove да rename ... а с чем они хоть подключаются? Code::blocks компилирует это даже если вообще ничего не подключать, но он также без ничего и printf, exit и т.д понимает вот и интересуюсь. Гугление приводит только к remove из stl.
- Не не туда компнул всё есть в stdio.h
C
1
2
int __cdecl remove(const char *);
int __cdecl rename(const char *, const char *);
Добавлено через 45 секунд

Не по теме:

Упс только увидел что Jupiter, уже всё за меня ответил...

0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
10.01.2012, 00:29
Gepar, когда у тебя возникает такой вопрос
Цитата Сообщение от Gepar Посмотреть сообщение
а с чем они хоть подключаются?
сделай следующее(см скрин) - компилятор сам тебя выведет на заголовок функции которую он собирается встроить
Миниатюры
Удаление данных из файла  
2
 Аватар для Gepar
1186 / 543 / 78
Регистрация: 01.07.2009
Сообщений: 3,517
10.01.2012, 00:55  [ТС]
-=ЮрА=-, так то же в VS, там бы я его и не применил не подключив stdio.h
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
10.01.2012, 01:34
Цитата Сообщение от Gepar Посмотреть сообщение
=ЮрА=-, так то же в VS, там бы я его и не применил не подключив stdio.h
- если бы шли predcompiled headers например ты делал бы проект в консоли с поддержкой MFC то никаких граблей бы не было(отработало и без stdio.h потому что он уже был подключён к проекту в stdafx.h, см сколько там инклудов)
C++
1
2
3
4
5
6
7
8
9
#include <afx.h>
#include <afxwin.h>         // MFC core and standard components
#include <afxext.h>         // MFC extensions
#include <afxdtctl.h>       // MFC support for Internet Explorer 4 Common Controls
#ifndef _AFX_NO_AFXCMN_SUPPORT
#include <afxcmn.h>         // MFC support for Windows Common Controls
#endif // _AFX_NO_AFXCMN_SUPPORT
 
#include <iostream>
Кстати GoToDefinition (или что нибудь наподобие) есть и в других средах...
(Как пример даю скрин из CodeBlocks)
Миниатюры
Удаление данных из файла   Удаление данных из файла  
1
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.01.2012, 09:09
Цитата Сообщение от Gepar Посмотреть сообщение
Или какой тогда подход считается наиболее оптимальным при решении такой задачи ?
Как уже говорилось, нужно создать новый файл, скопировать в него данные из первого файла с вырезанием лишних фрагментов, а потом переписать второй файл поверх первого. Второй, более быстрый вариант - это загнать весь файл в память, в памяти выхерить лишнее, а потом сборосить в файл. Понятно, что второй вариант не годится в случаях, когда файлы очень большие
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2012, 09:09
Помогаю со студенческими работами здесь

Удаление данных из файла
Здравствуйте ! у меня есть код для добавления данных в файл &lt;?php header('Content-Type: text/html; charset=utf-8'); $comments =...

Удаление данных из файла
Всем привет! Есть файл структуры: И так далее. Теперь, есть такой код: F = FreeFile() FileOpen(F,...

Удаление данных из текстового файла
Доброго времени суток! Помогите с реализацией. Есть текстовый файл, в котором записана информация : Код1 9 синий код2 8...

Удаление из файла связанных данных
Ребят, я сколько пытался, у меня не получалось, нужно реализовать удаление записи с файла, первые 5 строк это одна запись, нужно что бы...

Удаление данных из типизированного файла по условию
Всем привет!Такой вопрос, мне нужно удалять данные за промежуток времени выбранный в датапикерах,так вот, код написал..переписываем ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru