Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2011, 18:39   #1
dykatob
Пользователь
 
Регистрация: 15.04.2011
Сообщений: 38
По умолчанию Какой раз пытаюсь понять как же сделать в одном потоке удаление строки из файла... но безуспешно.

Ребят, столкнулся еще давно с проблемой о том что никак не могу удалить ( в Borland C++) строку из файла ( строка вводится с консоли)
пробовал делать с участием оперативной памяти, переносил всю информацию из файла в динамический массив, потом обрабатывал пытался обратно занести информацию но так и безуспешно...
так же пытался заменить пустой строкой строку которую нужно удалить... тоже безуспешно(
мне сказали что лучше всего сделать удаление строки из файла в одной потоке... и сказали что это несложно... но когда я спросил "вообще это как?" то так и не услышал ответа... =(
прошу подсказать если не сложно ) буду очень благодарен, думаю что не стоит эта программы 2-3 ех недель мучений сидя с книжкой К. и Р. , устал уже)
dykatob вне форума Ответить с цитированием
Старый 20.05.2011, 18:55   #2
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

1. Открываешь фаил 1 на чтение.
2. Открываешь фаил 2 на запись.
3. В цикле переписываешь тупо строки фаила 1 в фаил 2.
- если встретилась заданая строка, то не делаем добавление в фаил 2.
4. Закрываем фаилы.
5. Заменяем фаил 1 файлом 2.

Или что ты вообще спросил то?
Сливочное масло Valio - компиляция как по маслу

Последний раз редактировалось Valio; 20.05.2011 в 19:02.
Valio вне форума Ответить с цитированием
Старый 20.05.2011, 19:02   #3
dykatob
Пользователь
 
Регистрация: 15.04.2011
Сообщений: 38
По умолчанию

я так пробовал, но это использование временных файлов, которое мне не подходит,
меня интересует работа с потоком , т.е это возможно сделать в одном потоке!
Спасибо, за совет, но я так пробовал) просто эта программа будет неверной если файл весит 3 гб например)))
и оперативы не хватит)
dykatob вне форума Ответить с цитированием
Старый 20.05.2011, 19:05   #4
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
но это использование временных файлов
Ну можно это всё сделать в массиве например.

Цитата:
просто эта программа будет неверной если файл весит 3 гб
Почему "неверной"? И чтож это за текстовый фаил весом в 3 гб?
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 20.05.2011, 19:09   #5
dykatob
Пользователь
 
Регистрация: 15.04.2011
Сообщений: 38
По умолчанию

потому что у тебя оператива забьется и программа не станет работать..
переведем образ игры например в текстовик) вот и будет такой файл))
при создании массива у тебя используется так же оперативка, ты в нее помещаешь информацию с файла... я пробовал так(
dykatob вне форума Ответить с цитированием
Старый 20.05.2011, 19:23   #6
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
переведем образ игры например в текстовик) вот и будет такой файл))
Что есть "перевести"? Смена расширения ничего никуда не переводит.
И вообще фаил образа это ничто иное как подобие архива.

Какая задача стоит? Что на входе? Что на выходе?
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 20.05.2011, 22:18   #7
dykatob
Пользователь
 
Регистрация: 15.04.2011
Сообщений: 38
По умолчанию

смотри как звучит задание программы:
С консоли ввести имя и путь файла и произвольную строку. Из файла должна быть удалена строка введеная с консоли. Я хочу это сделать с использованием потока.
dykatob вне форума Ответить с цитированием
Старый 20.05.2011, 22:38   #8
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
Сообщение от dykatob Посмотреть сообщение
смотри как звучит задание программы:
С консоли ввести имя и путь файла и произвольную строку. Из файла должна быть удалена строка введеная с консоли. Я хочу это сделать с использованием потока.
Процесс всегда имеет минимум один поток, называем "главным".
Это не то задание где можно реально посмотреть всю нужность потоков.
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Старый 20.05.2011, 22:42   #9
dykatob
Пользователь
 
Регистрация: 15.04.2011
Сообщений: 38
По умолчанию

Можно ли как то еще провернуть удаление без временного файла и без создания массива строк файла?
если да, то скажи идейку) или примерчик какой-нибудь..
dykatob вне форума Ответить с цитированием
Старый 20.05.2011, 23:02   #10
Valio
Сливочное масло
Участник клуба
 
Аватар для Valio
 
Регистрация: 01.01.2011
Сообщений: 1,149
По умолчанию

Цитата:
Сообщение от dykatob Посмотреть сообщение
Можно ли как то еще провернуть удаление без временного файла и без создания массива строк файла?
если да, то скажи идейку) или примерчик какой-нибудь..
Твоя задача взята с потолка или хз откуда, я привык решать реальные задачи.

"Прелесть" текстового файла в том, что читать его можно только последовательно. Для того чтоб прочитать что в 150 строке нужно прочитать все предыдущие 149.

Что касается 3 Гб текстовый фаил, то я смутно представляю такой текстовый фаил. Такие объёмы размещают обычно в БД.

Я могу только посоветовать поглядеть в сторону типизированых файлов. В отличие от текстовых их можно читать с какой угодно позиции используя Seek (Delphi).
Сливочное масло Valio - компиляция как по маслу
Valio вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При чтении из консоли в одном потоке, не передается управление другому потоку Хохол Общие вопросы по Java, Java SE, Kotlin 3 10.11.2010 18:22
Как сделать все процессы на одном Timer Sanek777 Общие вопросы Delphi 5 26.09.2008 17:56
Удаление строки из файла Македонский Общие вопросы Delphi 5 29.08.2007 15:40
Как сделать все данные на одном языке? Python Microsoft Office Excel 2 29.01.2007 12:37