|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.03.2018, 23:37 | #1 |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
А что если Все измененный данные буду дописываться в конец файла, а их старое место в файле будет затираться пробелами ?
Есть данные поступающие с прибора. Текстовые файлы. Что бы их не засовывать в базу данных (много чести) были подготовлены простейшие скрипты для работ с ними, аналоги команд Insert, select, delete, update. Так работает уже лет 8.
В настоящий момент провожу ревизию всего этого добра и возник такой вопрос. Команды delete, update реализованы так что происходит переписывание всего файла. Это не страшно так как на каждый день свой файл и объем на файл не большой до 2000-7000 строк. А эти операции крайне редки. Удобно тем, что не меняется порядок строк. Появилась мысль, а что если сделать по другому. Все измененный данные буду дописываться в конец файла, а их старое место в файле будет затираться пробелами (так же в случае удаления). Должно быть быстрее, но менятся порядок строк и нужны дополнительные операции по "чистке" базы и, возможно, сортировки строк. Хочу узнать мнение более опытных товарищей, какой из методов более "правильный" будет? Или реализовать оба, а нужный указывать в команде?
С уважением, Алексей.
Последний раз редактировалось tae1980; 16.03.2018 в 07:59. |
16.03.2018, 08:17 | #2 |
Программист
Участник клуба
Регистрация: 23.06.2009
Сообщений: 1,772
|
Изобретаете СУБД
|
16.03.2018, 08:56 | #3 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Зато мозгов мало. БД для этого и придуманы, шоп данные накапливать.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
16.03.2018, 08:57 | #4 |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
Чудесно. А по существу сказать нечего? И это у меня мало мозгов?
Не нужны мне чужие программы, за которые не могу отвечать. Особенно в примитивных задачах. Вам шнурки до сих пор родители завязают? Нет? А как так? Ведь это одни из их задач. Система проработала без сбоя 8 лет, имея нагрузку в 20 раз больше расчетной. Показатели меня более чем устраивают. Сейчас подшаманим, и оставим ещё лет на 10. А вы пользуйтесь чем угодно - ваше право. Моё право, пользоваться тем, чем я сочту нужным.
С уважением, Алексей.
Последний раз редактировалось tae1980; 16.03.2018 в 09:08. |
16.03.2018, 09:21 | #5 |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
Вообще-то я её уж написал 4 года назад. И успел раз 5 переписать. Ряд показатель уникальны, аналогов не знаю. Но главное она на 150% меня устраивает, так как подстроенная под мои задачи.
Неужели все тупо пользоваться результатом чужого труда, не понимая, что именно делает чужая программа? А такой примитив как прочить файл в массив (несколько сот строк), обработать его в цикле, выгрузить и так 31-365 раз - это уже сверх сложная задача, для решения которой в обязательном порядке нужны внешние программы? Но это лирика. Мне же интересна теория. Читал об этой задаче в одной книжке, лет 15 назад (если не больше). Там был подробный разбор всех подобных операций. Но, за давностью лет, вспомнить название и автора не могу.
С уважением, Алексей.
Последний раз редактировалось tae1980; 16.03.2018 в 09:29. |
16.03.2018, 09:30 | #6 | ||||
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Цитата:
Цитата:
Цитата:
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
||||
16.03.2018, 10:07 | #7 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,770
|
Еще веселее - все CISC процессоры содержат чужую прогу...
|
16.03.2018, 10:19 | #8 | |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
Цитата:
Мне интересно, можно назвать это хобби. Для оценки создается стенд и код гоняется в экстремальных условиях. ИМХО он и должен быть медленнее, особенно с учетом времени на "чистку" и сортировку файлов. Но эти операции можно вынести за скобки для конечного пользователя, и проводить на автомате скажем ночью. Это тоже верно. В бытность работы на спекки мы писали и свои ОС и детально, на уровне кода, лазили в CP/M. Сейчас нет такой возможности. Но ВСЕ функции, которые использую, многократно тестирую, что быть в них хоть как-то уверенным. Несколько штук уже было забраковано, так как давали не стабильные результаты. Приходилось искать обходные пути.
С уважением, Алексей.
|
|
16.03.2018, 10:21 | #9 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,531
|
если обновленные данные займут РОВНО столько же места, то имеет смысл работать на старом месте.(вам же все одно надо будет ПОМЕНЯТЬ это место на пробелы)
Цитата:
1.Переписать файл чтобы ЗАМЕНИТЬ запись на пробелы 2.и ПОТОМ добавить новую(обновленную) запись. P.S. конечно же это будет только одна запись файла, но всего. прочитать поменять добавить ЗАПИСАТЬ. Вы этого точно еще хотите?
программа — запись алгоритма на языке понятном транслятору
|
|
16.03.2018, 10:41 | #10 | |
Форумчанин
Регистрация: 02.02.2009
Сообщений: 844
|
Цитата:
2. Затирка не потребует перезаписи всего файла, так как можно выставить маркер на нужное место и посимвольно записать информацию/пробелы (её размер известен). А новые данные дописать в конец файла уже как строку. То есть файл не будет переписываться вообще. За счет этого и должно быть быстрее (прочитать можем несколько сот строк, а запишем только две).
С уважением, Алексей.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Имеется программа, которая заменяет определенное слово в файле, что изменить чтобы вместо файла, писать в консольном режиме предложение в котором будет меняться слово.-Delphi | broiler747 | Помощь студентам | 0 | 08.12.2017 20:51 |
А что если у клуба будет своё физическое место в реале? | Alar | Свободное общение | 41 | 15.03.2015 17:25 |
Фалы,паскаль-Найти самое большое число в файле.Если оно чётное вывести его повторно в конец файла | Vika2112 | Помощь студентам | 0 | 13.12.2012 08:14 |
Если СЕГОДНЯ не вчера, то что будет завтра? | r_tem | Microsoft Office Excel | 4 | 12.10.2010 12:16 |
Что мне будет за то, если я взломаю сайт? | Лукманов Александр | Безопасность, Шифрование | 28 | 08.03.2009 21:32 |