|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
11.12.2008, 11:26 | #1 |
Пользователь
Регистрация: 22.08.2007
Сообщений: 59
|
Проверка повторяемости данных
Доброго времени суток всем! Помогите найти лучшее решение из возможных.
Есть некий файл, я из него читаю данные и сохраняю все как мне надо. Через некоторое время мой исходный файл обновляется. Я опять его читаю и делаю что мне надо. Проблема вот в чем: когда я читаю файл каждый последующий раз, в нем могут быть данные, которые уже были в предыдущем файле и я их уже обработал, соответственно повторно делать этого не нужно. Как лучше сделать проверку повторности данных? Как варианты: писать в текстовый файл и каждый раз перебирать и сравнивать, создать БД и писать туда, а потом делать выборку и опять же сравнивать. А может есть какой-нибудь специальный компонент для этого? Как лучше разрешить такую задачу? |
11.12.2008, 11:30 | #2 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,544
|
Для начала поясните, какие данные и в каком формате хранятся в файле?
E-Mail: arigato.freelance@gmail.com
|
11.12.2008, 11:33 | #3 |
Пользователь
Регистрация: 22.08.2007
Сообщений: 59
|
читаю из dbf файла поля в string
|
11.12.2008, 11:39 | #4 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
Как я понял файл постоянно растет в размере при каждом обновлении. Собственно если вы упарвляите форматом файла то допишите один байт к каждому полю - т.е. если он будет равен 0 к примеру - то это поле вы не читали тогда читем и пишем это место ту же 1 (еденицу). Иначе если формат не от вас зависит... можно просто бинарный файл рядом класть типа смещение - 4 байта, т.е. на какой позиции вы уже читали поле ну или просто число одно - тоже смещение..т.е. последнее обработаное с начала файла. допустим был файл 32 кб вы прочитали первые 16 и пишите 16 * 1024 и будет вам позиция в файле. Потом открываите новый обновленный файл и ставите именно на позицию 16 * 1024 и продолжаите читать.
Если данные обновленные приходят бесспорядочно и затирают старый файл, то как вы и говорите вести учет данных в базе данных. Т.е. грубо говоря так можно рассуждать сколько влезет. Если откроите тему по полной... то можно будет вместе отобрать лучшее решение или придумать новое. |
11.12.2008, 12:02 | #5 |
Пользователь
Регистрация: 22.08.2007
Сообщений: 59
|
Каждый новый файл может как содержать повторные поля, так и не содержать их (это не от меня зависит, я работаю с заданным файлом), по этому первый вариант, к сожалению, не подходит. Вариант с базой данных пусть пока остается как резервный, если не найдется ничего лучше, тогда буду использовать БД.
Но может есть еще какой-нибудь способ, кроме использования БД? |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверка на НДВ | webprogect | Безопасность, Шифрование | 1 | 07.11.2008 14:39 |
Проверка | Манжосов Денис :) | Общие вопросы Delphi | 4 | 17.10.2008 16:27 |
Проверка на дублирование в базе данных | POPOV | Помощь студентам | 9 | 04.12.2007 18:21 |
проверка ввода данных в форму | @Simpson | JavaScript, Ajax | 1 | 12.11.2007 02:17 |
Проверка на отсутствие данных в БД | Elena | БД в Delphi | 5 | 14.06.2007 16:10 |