![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Rickert |
|
||||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
САБЖ.
Есть файл, который содержит большое кол-во строк. Как удалить одну из них? Не просто удалить, а чтобы остальные сдвинулись соответственно. То бишь, допустим файл такой:
Удалять надо 4-ую строку. Должно быть так на выходе:
Ваши варианты? Добавлено через 12 минут и 56 секунд Хочется добавить, что интересуют какие-либо более быстрые методы, кроме как создание нового файла с занесением в него всех строк, кроме той, которую надо удалить и последующим переименование файла. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
||||
|
|||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Rickert,
отобразить файл на память и работать как с обычным массивом под *N?X: open() + mmap() под Windows: OpenFile() + CreateFileMapping() + MapViewOfFile() Это сообщение отредактировал(а) MAKCim - 28.6.2007, 09:15 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
MAKCim, не пойдёт, потому что речь идёт о базе данных, а следовательно размеры могут быть большими. Программа будет крутиться на сервере и должна работать максималоьно быстро.
Добавлено через 42 секунды Там большое 15 текстовых полей на одну строку + номер строки. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| MAKCim |
|
||||||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
Rickert,
это самый быстрый способ эффективность работы с файлом обычным способом обратно пропорциональна количеству операций над ним что касается объема памяти, в этом то и плюс отображения: в случае нехватки физической памяти система просто сбросит кэш на диск и тем самым освободит физические страницы советую прикинуть: либо мы делаем
или
Добавлено @ 09:30
Это сообщение отредактировал(а) MAKCim - 28.6.2007, 09:31 -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
||||||
|
|||||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Ладно, буду пробовать так.
Добавлено через 15 секунд Может у кого ещё идеи родятся - отпишитесь, плз -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
Немного в другую сторону, но имхо, в данной ситуации быстрее будет завести 16-е поле в каждой строке - (активный/удаленный). Работать только с активными полями. А, допустим, когда наберется 1000 (ну или больше, смотря какой рабочий объем базы) удаленных записей, почистить файл от мусора.
|
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
-------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| bsa |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9185 Регистрация: 6.4.2006 Где: Москва, Россия Репутация: 63 Всего: 196 |
Тем, что надо читать документацию и/или в обычном текстовом редакторе фигня будет. |
||||
|
|||||
| JackYF |
|
|||
![]() полуавантюрист ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 5814 Регистрация: 28.8.2004 Где: страна тысячи озё р Репутация: 18 Всего: 162 |
н-ну... насколько эффективной будет работа с такой базой данных (такого размера) в текстовом редакторе?.. |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Самый глупый вопрос который можно было задать. Ей богу. Какая разница почему? Я задал вопрос с опред. условиями, а всё остальное - излишне. -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| jonie |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 5613 Регистрация: 21.8.2005 Где: Владимир Репутация: 15 Всего: 118 |
тогда фигли стонать что "это не достаточно быстро" ?
других ответов вам не дадут уже - все что было -- дали. Любое удаление "в середине" требует создание нового файла, с вырезанием содержимого. НЕТ других способов "вырезки". Вам были приедложены варианты - альтернативы -- не нравится - не используйте. За сим тему пологаю закрытой. -------------------- Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет... |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
Ишь какой крутой, темы закрывать
Ладно, без шуток. Просто не люблю, когда на вопрос отвечают вопросом. Ты спрашиваешь: как заточить лопату, хочу поле перекопать, а тебе говорят: а чем тебя трактор не устраивает? тоже самое Добавлено через 1 минуту и 20 секунд Мне вот интересно, а тот же Mysql работает через дамп в памяти? -------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 52 Всего: 207 |
ну почему же, есть вопрос только в эффективности -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| vinter |
|
|||
![]() Explorer ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2735 Регистрация: 1.4.2006 Где: Н.Новгород Репутация: 13 Всего: 56 |
как? и есть ли уверенность что "то что может вырезать " не создает новый файл удаляя старый? |
|||
|
||||
| Rickert |
|
|||
|
Ситхи не пройдут! ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3356 Регистрация: 11.7.2006 Где: Лакрима Репутация: 0 Всего: 52 |
MAKCim, просим
-------------------- Ни что не внушает сна крепче, чем день приисполненный трудов! |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |